c# - Doing POST to server from web-service -
hosted web service post
aspx pages.
the code:
[webmethod] public string test() { sb.appendline("start"); try { var t = new thread(mythreadstartmethod); t.setapartmentstate(apartmentstate.sta); t.start(); t.join(); } catch (exception ex) { sb = sb.appendline(ex.tostring()); } sb.appendline("finish"); return sb.tostring(); } private void mythreadstartmethod(object obj) { try { webbrowser browser = new webbrowser(); browser.documentcompleted += browser_documentcompleted; browser.url = new uri("http://www.wikipedia.com"); while (browser.readystate != webbrowserreadystate.complete) { system.windows.forms.application.doevents(); thread.sleep(60); } } catch (exception ex) { sb = sb.appendline(ex.tostring()); } } void browser_documentcompleted(object sender, webbrowserdocumentcompletedeventargs e) { sb = sb.appendline("document completed: " + e.url); }
when trying run on shared hosting server timeout error.
tried next code check if can connect third-part address , works ok.
private bool checkurl(string url) { try { httpwebrequest request = webrequest.create(url) httpwebrequest; request.method = "head"; httpwebresponse response = request.getresponse() httpwebresponse; return (response.statuscode == httpstatuscode.ok); } catch { return false; } }
anyone can explain problem running first code? block something?
you have remove next 2 lines code
system.windows.forms.application.doevents(); thread.sleep(60);
as stopping webbrowser control completing navigate.
the best sample on how run webbrowser control in separate thread proposed hans passant
Comments
Post a Comment