Windows Phone中http请求收到The remote server returned an error: NotFound.

这个问题在我做微信公众平台的时候频繁出现,有一些几乎使得整个功能模块无法工作,后来经过多次的排查发现了很多问题,至少在个人debug和上传应用商店在再下载的时候几乎没有出现过,别的用户那里不晓得有没有出现这个问题,我总结一下可能出现这个问题的原因:

1:网络问题,在测试的时候我偶然发现当贯标所有网络的时候,会出现这个问题,然后我把它从wifi环境弄到手机网络环境下再测试,这个问题尤其严重,这也是我第一次发现这个问题,这导致我的第一个版本推迟了1个礼拜才发布,我的解决方案是声明HttpWebRequest对象后再在对象上添加以下代码。

webRequest.AllowWriteStreamBuffering = true;
webRequest.SetNetworkPreference(NetworkSelectionCharacteristics.Cellular);
webRequest.AllowReadStreamBuffering = true;
不知道是不是运气原因,那个现象大大减少,请高手指正。

2:验证问题,这个问题会使得服务器认为你的权限还不够高,然后拒绝你的请求。所以对于那些https开头的网站这个问题尤其突出,这些网站需要证书,一般的SSL证书,wp都有集成,请参照http://technet.microsoft.com/zh-cn/library/gg521150(v=vs.92).aspx。还有像12306网站的证书,需要自己导入,我询问过掌上12306的开发者这个证书问题,他说只要安装网站给的证书,其它的都跟一般一样。非常感谢他给我指点迷津。最后一个,也是最重要的一个就是请求头的缺少和cookie的缺少,这两个很容易被忽视,而且问题不容易发现,我在做app的时候就发现遨游的开发者工具有点时候会出现某些选项的缺少,当时花费了我好长时间找问题,后来在ie上试了一下,发现了问题所在,所以建议大家使用两个浏览器的开发者工具,或者更专业的工具,比如httpwatcher。以确保你的所有信息能够通过服务器的验证。

最后请大家赏光看一下鄙人做的app--微信公众平台,欢迎提出宝贵的意见:http://www.windowsphone.com/zh-cn/store/app/%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%B9%B3%E5%8F%B0/bcbba613-c8f1-4d2e-b73d-c5ba48ae3e0d

你可能感兴趣的:(http,windows,error,server,remote,8,phone,the,An,returned,NotFound.)