2013-12-10 101 views
0

不幸的是,不能使用4.5框架HttpClient類,因爲這應該工作得很好。需要從單個連接發出多個HTTP Get請求

我需要從需要在URI中驗證的網站獲取結果。您第一次使用HTTP GET時,它始終會因401(驗證失敗)錯誤而失敗。第二次使用HTTP GET時,它可以工作 - 驗證了這個用過的瀏覽器和Fiddler。

我的問題是,我無法弄清楚如何使用System.Net.WebClient或System.NetWebRequest類在給定套接字上發出多個HTTP GET。

Both of these appear to be designed to support only a single Get/Response pair 

// via WebRequest 

System.Net.WebRequest req = System.Net.WebRequest.Create(xc.InspectionURL); 
System.Net.WebResponse resp = req.GetResponse(); // throws 401 exception 

// via WebClient 

System.Net.WebClient wc = new System.Net.WebClient(); 
Stream data = wc.OpenRead(xc.InspectionUrl); // throws 401 exception 

401個例外是類型System.Net.WebException

我已經嘗試在重試的異常重試無論是「構造器等價物」和的GetResponse()等同,但後我仍然遇到401錯誤的重試。

一旦初始請求成功(與認證)我需要使用相同的連接進行一些額外的請求,所以我想避免總的kludges,我顯然希望避免寫一切從低水平像System.Net.Sockets

是否有一些方法或其他類,我忽略了?還是推薦的第三方圖書館?我之前使用過Indy components,但他們的CLR版本似乎還不完整。

回答

0

那麼,我一直在挖掘,發現我可以使用RestSharp發出多個GET。 RestSharp支持.Net 3.5 & 4.0 - 所以我很好去。