忽略查询字符串

本文关键字:字符串 查询 | 更新日期: 2023-09-27 18:31:46

我正在编写一个接口来从服务中抓取信息。 该链接位于登录后面,因此我保留了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();

这适用于第一页,我得到了我需要的数据,但是每次后续传递时,查询字符串都会被忽略。 在最后一行进行调试显示请求的 RequestUri.Query 是正确的,但响应 RequestUri.Query 为空。 因此,它具有始终返回第 1 页数据的效果。

我试图模仿通过 Chrome 中的检查看到的请求标头,但我被卡住了。 帮助?

忽略查询字符串

当您将失败的URL放入浏览器时,它会起作用吗? 因为它是 GET,浏览器应该发出相同的请求并告诉您它是否正常工作。 如果它在浏览器中不起作用,那么除了查询字符串之外,您可能还缺少其他内容?
如果它确实有效,那么可以使用 fiddler 并准确找出正在发送的标头、cookie 和查询字符串值,以 100% 确保您发送了正确的请求。 可能是查询字符串的信息不足以从要发送的请求中获取所需的数据。

如果您仍然无法获得它,那么当您通过浏览器发送请求时,请摆弄请求,然后使用此提琴手扩展将请求转换为代码并查看发生了什么。