【发布时间】:2016-01-25 19:40:14
【问题描述】:
我正在编写一个接口来从服务中获取信息。该链接位于登录后,因此我保留了 cookie 的副本,然后尝试循环浏览页面以获取我们用户的统计信息。
要点击的网址格式为:https://domain.com/groups/members/1234 对于第一页,每个后续页面都附加 ?page=X
string vUrl = "https://domain.com/groups/members/1234";
if (pageNumber > 1) vUrl += "?page=" + (pageNumber).ToString();
HttpWebRequest groupsRequest = (HttpWebRequest)WebRequest.Create(vUrl);
groupsRequest.CookieContainer = new CookieContainer();
groupsRequest.CookieContainer.Add(cookies); //recover cookies First request
groupsRequest.Method = WebRequestMethods.Http.Get;
groupsRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36";
groupsRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
groupsRequest.UseDefaultCredentials = true;
groupsRequest.AutomaticDecompression = DecompressionMethods.GZip;
groupsRequest.Headers.Add("Accept-Language", "en-US,en;q=0.8");
groupsRequest.Headers.Add("Cache-Control", "max-age=0");
HttpWebResponse getResponse = (HttpWebResponse)groupsRequest.GetResponse();
这对于第一页效果很好,我得到了我需要的数据,但是在随后的每一次传递中,queryString 都会被忽略。最后一行的调试显示请求的 RequestUri.Query 是正确的,但响应 RequestUri.Query 是空白的。所以有一直返回page 1数据的效果。
我试图模仿通过 Chrome 中的 Inspect 看到的请求标头,但我被卡住了。帮忙?
【问题讨论】:
-
如何增加 pageNumber ?
-
它作为 int 传递给方法,因此由调用例程处理递增。
标签: c# get httpwebrequest query-string