4

我正在尝试解析网页,请求中的要求之一是设置适当的接受标头。我已经验证,如果不通过 Postman 进行设置,它就无法工作。所以我试图通过 HttpWebRequest 在 GET 请求中设置 Accept Header,但它并没有按照我在 Fiddler 中的发现发送过来。

这是我通过邮递员发送时的请求。这是有效的。注意 Accept 标头。

工作提琴手请求

工作提琴手请求

这是我通过代码发送时的请求。这是行不通的。有关此请求的代码,请参见下文。

代码提琴手请求

代码提琴手请求

这是我的代码:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET";
req.KeepAlive = true;
req.Accept = @"*text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
//req.Headers.Add("Accept", @"*text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
//req.Headers["Accept"] = @*text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";

using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream()))
{
    source = reader.ReadToEnd();
}

我已经尝试了 req.Accept 下面的两行,它们也被上面注释掉了,但是没有运气。任何建议表示赞赏。我也不介意将 HttpWebRequest 更改为其他内容,只要它有效。

4

0 回答 0