[英]Accessing XML feed only works if fiddler is running
我試圖理解為什么僅當我打開提琴手時才對提要進行簡單調用。
我看了以下鏈接,但似乎沒有答案適用:
除非提琴手正在運行,否則HttpWebRequest不起作用
http://blogs.telerik.com/fiddler/posts/13-02-28/help!-running-fiddler-fixes-my-app-
我的代碼非常簡單,據我所知,它應該只用xml文件的內容填充變量:
using (var client = new WebClient())
{
text = client.DownloadString(path);
}
請注意,如果我正在運行提琴手,則此方法非常有效,但如果在提琴手未運行時運行它,則會失敗並顯示超時錯誤(?)。
我可以直接從瀏覽器訪問xml文件的路徑-因此權限/訪問似乎也不是問題。
http://www.tfl.gov.uk/tfl/syndication/feeds/cycle-hire/livecyclehireupdates.xml
Fiddler的RAW輸出為:
HTTP/1.1 200 OK
Via: 1.1 varnish, 1.1 ZTMG01
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Transfer-Encoding: chunked
Age: 19
Date: Mon, 22 Dec 2014 15:23:47 GMT
Content-Type: text/xml
ETag: "dce1c05f259961aeac88cebcdfdbeebe"
Server: AmazonS3
x-amz-id-2: C6oNmRATZO4E7eNiyPhyCOhqT45Mb9Wp0XXaU8KsBQf84gYeNzM9OPAOa9YBNFsL4DGsPSEs5Cw=
x-amz-request-id: 0CE21B93AC8DDC15
Last-Modified: Mon, 22 Dec 2014 15:22:31 GMT
X-TTL-RULE: 8
X-Cacheable: Yes. Cacheable
X-TTL: 60.000
X-Backend: proxy
X-Varnish: 10.76.2.236
X-Backend-Url: http://s3-eu-west-1.amazonaws.com/tfl.pub/Serco/livecyclehireupdates.xml
X-Hash-Url: /tfl.pub/Serco/livecyclehireupdates.xml
Access-Control-Allow-Origin: *
X-Varnish: 181999945 181994842
X-Banning:
X-Cache: HIT
X-Cache-Hits: 4
有誰知道為什么會這樣嗎?
除了開發機器上的代理配置問題外,我看不到其他任何東西。 我已經使用LINQPad測試了提供的代碼和URL,並在Fiddler運行和不運行的情況下成功檢索了XML。
您可以通過將Proxy屬性設置為null來覆蓋WebClient實例的默認代理配置:
string path = "http://www.tfl.gov.uk/tfl/syndication/feeds/cycle-hire/livecyclehireupdates.xml";
using (System.Net.WebClient client = new System.Net.WebClient())
{
client.Proxy = null;
client.DownloadString(path);
}
請注意,將Proxy設置為null將始終繞過Fiddler。
正如魔術師所說,這可能是代理問題
摘自http://msdn.microsoft.com/zh-cn/library/system.net.webclient.proxy(v=vs.110).aspx
Proxy屬性標識代表此WebClient對象與遠程服務器通信的IWebProxy實例。 代理是由系統使用配置文件和Internet Explorer局域網設置來設置的。 若要指定不使用任何代理,請將Proxy屬性設置為GetEmptyWebProxy方法返回的代理實例。
嘗試在IE的Internet選項中重置代理配置
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.