我正在尝试解析网页,请求中的要求之一是设置适当的接受标头。我已经验证,如果不通过 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 更改为其他内容,只要它有效。