天天看點

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

繼續閱讀