如何在 http 标头中设置用户代理

use*_*417 7 c# user-agent httpwebrequest

我正在尝试在 C# 中的覆盖函数 GetWebRequest 中的 http 标头中设置用户代理

protected override System.Net.WebRequest GetWebRequest(Uri uri)
{
    System.Net.HttpWebRequest request = base.GetWebRequest(uri) as System.Net.HttpWebRequest;                
    request.Headers.Add("User-Agent", (someone@yahoo.com"));
    request.ProtocolVersion = System.Net.HttpVersion.Version10;
    request.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);
    request.KeepAlive = false;
    return request;
} 
Run Code Online (Sandbox Code Playgroud)

我的请求返回错误,我被告知他们没有看到用户代理。我尝试了其他设置标题用户代理的方法,但到目前为止没有任何效果。我尝试过的其他一些方法是

request.Headers["User-Agent"] = "someone@yahoo.com");
request.UserAgent = "someone@yahoo.com";
request.Headers.Set("User-Agent", "someone@yahoo.com");
Run Code Online (Sandbox Code Playgroud)

我试图发送我的请求的网站告诉我,它需要一种方法来识别我们,以防出现问题,“请确保您的请求包含“用户代理”http 标头。他们给我发了一个例子,但它使用的是 CURL

curl_setopt($ch, CURLOPT_USERAGENT,'jeremy.fields@gmail.com)
Run Code Online (Sandbox Code Playgroud)

小智 0

我认为您错误地使用了 User-Agent 标头。来自MSDN

当您访问网页时,您的浏览器会将用户代理字符串发送到托管您正在访问的网站的服务器。该字符串指示您正在使用的浏览器、其版本号以及有关您的系统的详细信息,例如操作系统和版本。Web 服务器可以使用此信息来提供为您的特定浏览器量身定制的内容。

该页面的一个示例:

用户代理:Mozilla/5.0(Windows NT 6.3;Trident/7.0;rv:11.0),如 Gecko