MonoDroid HttpWebRequest和WebClient不可靠?

sta*_*ith 6 c# mono xamarin.android

我在MonoDroid中使用Webrequests并随机获取超时时遇到了很多麻烦.我的代码工作正常,有时所有请求只是超时,不起作用.

我已经验证了我的请求中使用的Web服务不是问题.

下面是一些代码的示例,我可以使用它来从使用MonoDroid的Web服务请求一些数据:

bool bolOk = false;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create ("http://www.website.com/service/");
request.Timeout = 20000;
request.Credentials = gv_objCredentials;

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse ()) {
    bolOk = response.StatusCode == HttpStatusCode.OK;
}
Run Code Online (Sandbox Code Playgroud)

你可以看到它是基本的东西.我使用ThreadPool.QueueUserWorkItem或TaskFactory使用上面的代码总是在另一个线程上使用UI.

我注意到的是,如果请求从我的应用程序开始超时,我将其插入我的计算机,然后从MonoDevelop调试应用程序,请求工作没有超时.我不确定这是否意味着什么.这类似于使用与手机在同一网络上的浏览器从我的计算机测试Web服务.Web服务始终可以正常工作.

从MonoDroid制作Webrequest的最佳方法是什么?

如何确保我的请求始终成功,并且如果Web服务正常运行,则不会超时?

Wil*_*nts 1

Android 版 Mono (4.2.5) 的新版本修复了 WebRequest 和 webRequestStream 的许多错误。您可以在此处查看发行说明:http://docs.xamarin.com/android/Releases/Mono_For_Android_4/Mono_for_Android_4.2.5

我建议下载最新版本并检查它是否有效。如果没有,请提交错误,他们一定会在产品的下一版本中修复它。