需要从单个连接发出多个HTTP Get请求

时间:2013-12-10 18:16:55

标签: .net http

不幸的是,不能使用4.5框架的HttpClient类,因为它应该可以正常工作。

我需要从需要在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

我尝试在异常之后重试,以重试“contructor equivalent”和GetResponse()等效,但我仍然在重试时遇到401错误。

一旦初始请求成功(使用身份验证),我也需要使用相同的连接做出一些额外的请求,所以我想避免总的冲突,我显然希望避免从低级别的东西写一切System.Net.Sockets

我忽略了一些方法或其他课程吗?或推荐的第三方图书馆?我之前使用过Indy components,但他们的CLR版本似乎还不完整。

1 个答案:

答案 0 :(得分:0)

好吧,我一直在挖掘,发现我可以使用RestSharp发出多个GET。 RestSharp支持.Net 3.5& 4.0 - 所以我很高兴。