c# - HttpWebResponse error, not found -
i have strange issue using httpwebrequest, i'm trying post string service httpwebresponse keeps producing following error;
"system.net.webexception: remote server returned error: notfound. ---> system.net.webexception: remote server returned error: notfound. @ system.net.browser.clienthttpwebrequest.internalendgetresponse(iasyncresult asyncresult)\r\n @ system.net.browser.clienthttpwebrequest.<>c__displayclass2.<endgetresponse>b__1(object sendstate)\r\n @ system.net.browser.asynchelper.<>c__displayclass4.<beginonui>b__1(object sendstate)\r\n @ system.reflection.runtimemethodinfo.internalinvoke(runtimemethodinfo rtmi, object obj, bindingflags invokeattr, binder binder, object parameters, cultureinfo culture, boolean isbinderdefault, assembly caller, boolean verifyaccess, stackcrawlmark& stackmark)\r\n @ system.reflection.runtimemethodinfo.internalinvoke(object obj, bindingflags invokeattr, binder binder, object[] parameters, cultureinfo culture, stackcrawlmark& stackmark)\r\n @ system.reflection.methodbase.invoke(object obj, object[] parameters)\r\n @ system.delegate.dynamicinvokeone(object[] args)\r\n @ system.multicastdelegate.dynamicinvokeimpl(object[] args)\r\n @ system.delegate.dynamicinvoke(object[] args)\r\n @ system.windows.threading.dispatcher.<>c__displayclass4.<fastinvoke>b__3()\r\n @ system.reflection.runtimemethodinfo.internalinvoke(runtimemethodinfo rtmi, object obj, bindingflags invokeattr, binder binder, object parameters, cultureinfo culture, boolean isbinderdefault, assembly caller, boolean verifyaccess, stackcrawlmark& stackmark)\r\n @ system.reflection.runtimemethodinfo.internalinvoke(object obj, bindingflags invokeattr, binder binder, object[] parameters, cultureinfo culture, stackcrawlmark& stackmark)\r\n @ system.reflection.methodbase.invoke(object obj, object[] parameters)\r\n @ system.delegate.dynamicinvokeone(object[] args)\r\n @ system.multicastdelegate.dynamicinvokeimpl(object[] args)\r\n @ system.delegate.dynamicinvoke(object[] args)\r\n @ system.windows.threading.dispatcheroperation.invoke()\r\n @ system.windows.threading.dispatcher.dispatch(dispatcherpriority priority)\r\n @ system.windows.threading.dispatcher.oninvoke(object context)\r\n @ system.windows.hosting.callbackcookie.invoke(object[] args)\r\n @ system.windows.hosting.delegatewrapper.internalinvoke(object[] args)\r\n @ system.windows.runtimehost.managedhost.invokedelegate(intptr phandle, int32 nparamcount, scriptparam[] pparams, scriptparam& presult)\r\n\r\n @ system.net.browser.asynchelper.beginonui(sendorpostcallback beginmethod, object state)\r\n @ system.net.browser.clienthttpwebrequest.endgetresponse(iasyncresult asyncresult)\r\n @ zabbixclient.mainpage.responsecallback(iasyncresult result)\r\n @ system.net.browser.clienthttpwebrequest.<>c__displayclassa.<invokegetresponsecallback>b__8(object state2)\r\n @ system.threading.threadpool.workitem.dowork(object o)\r\n @ system.threading.timer.ring()\r\n"
my code looks like;
private void btnsignin_click(object sender, routedeventargs e) { // prepare web request... httpwebrequest myrequest = (httpwebrequest)webrequest.create(new uri("http://monitor.co.uk", urikind.absolute)); myrequest.method = "post"; myrequest.contenttype = "application/x-www-form-urlencoded"; myrequest.begingetrequeststream(new asynccallback(requestcallback), myrequest); } void requestcallback(iasyncresult result) { httpwebrequest myrequest = result.asyncstate httpwebrequest; //need error checking part stream stream = myrequest.endgetrequeststream(result); using (streamwriter sw = new streamwriter(stream)){ sw.write("{ \"jsonrpc\":\"2.0\",\"method\":\"user.authenticate\",\"params\":{\"user\":\"<login>\",\"password\":\"<password>\"},\"id\":2}"); } myrequest.begingetresponse(responsecallback, myrequest); } void responsecallback(iasyncresult result) { //get request object httpwebrequest myrequest = result.asyncstate httpwebrequest; try { //need error checking here httpwebresponse response = myrequest.endgetresponse(result) httpwebresponse; using (streamreader sr = new streamreader(response.getresponsestream())) { system.windows.deployment.current.dispatcher.begininvoke(() => { messagebox.show(sr.readtoend()); }); } } catch (webexception webexcp) { system.windows.deployment.current.dispatcher.begininvoke(() => { messagebox.show(webexcp.tostring()); }); } }
i can't figure out what's going on, url specified correctly , working, read use fiddle monitor going on nothing appears in fiddler suggesting it's not getting make request? info appreciated. thanks!
first, let me point out problem in code:
using (streamreader sr = new streamreader(response.getresponsestream())) { system.windows.deployment.current.dispatcher.begininvoke(() => { messagebox.show(sr.readtoend()); }); }
the stream closed time attempt display result. should have this:
using (streamreader sr = new streamreader(response.getresponsestream())) { string s = sr.readtoend(); system.windows.deployment.current.dispatcher.begininvoke(() => { messagebox.show(s); }); }
yet, not sure why want display response in messagebox
instance - unreadable - use output
console debugging purposes.
back on topic - notfound
returned server , has nothing request being processed os. generic error , need make sure invoking supported on other end.
make sure have internet connection (on side note).
Comments
Post a Comment