问题描述
传入一个网址,然后用webbrowser请求这个网址,会收到json的字符串但是希望等webBrowser_DocumentCompleted了再将json取出做其他处理如果webbrowser.Navigate(url);了立马取值可能会因为网速的问题娶不到不值该怎么写了
解决方案
解决方案二:
while(true)->while(webBrowser1.Busy)
解决方案三:
引用1楼devmiao的回复:
while(true)->while(webBrowser1.Busy)
这样好像不行,直接就跳过了,webbrowser能正确加载出来,但Stringjson是获取不到值的。。。
解决方案四:
你就是要下载一个网址返回的内容,换WebClient类库就好了。用浏览器控件也可以,但documentcompleted是事件,是异步的,不能这么写
解决方案五:
问题已解决,用阿三的方法,强制webbrowser成同步方法即可http://www.blog.qualitypointtech.com/2009/03/c-webbrowser-control-synchronization.html//使用url获取DocumentText字符串publicstringgetDocumentTextnString(stringurl){this.webBrowser1.Navigate(url);WebBrowserReadyStateloadStatus;//waittillbeginningofloadingnextpageintwaittime=100000;intcounter=0;while(true){loadStatus=webBrowser1.ReadyState;Application.DoEvents();if((counter>waittime)||(loadStatus==WebBrowserReadyState.Uninitialized)||(loadStatus==WebBrowserReadyState.Loading)||(loadStatus==WebBrowserReadyState.Interactive)){break;}counter++;}//waittillthepagegetloaded.counter=0;while(true){loadStatus=webBrowser1.ReadyState;Application.DoEvents();if(loadStatus==WebBrowserReadyState.Complete){break;}counter++;}returnthis.webBrowser1.DocumentText;}