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

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;
}

我的请求返回错误,并被告知他们没有看到用户代理。我尝试了其他设置标题用户代理的方法,但到目前为止没有任何效果。我尝试过的其他方法是
request.Headers["User-Agent"] = "someone@yahoo.com");
request.UserAgent = "someone@yahoo.com";
request.Headers.Set("User-Agent", "someone@yahoo.com");

我尝试发送请求的网站告诉我,如果出现问题,它需要一种方法来识别我们,并且“请确保您的请求包括“user-agent” http header 。”他们给我发送了一个示例,但它使用的是CURL
curl_setopt($ch, CURLOPT_USERAGENT,'jeremy.fields@gmail.com)

最佳答案

用户代理代表您的浏览器,例如Firefox或Chrome

通过将其强制转换为HttpWebRequest来使用HttpWebRequest的UserAgent属性

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = "my user agent";

或者
request = new HttpClient();
request.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0");

关于c# - 如何在http header 中设置用户代理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43925733/

10-12 16:44