如何在c#中使用System.Net.WebRequest设置用户代理

本文关键字:Net System WebRequest 设置 用户代理 | 更新日期: 2023-09-27 18:21:30

我正试图用WebRequest设置用户代理,但不幸的是,我只找到了如何使用HttpWebRequest来完成,所以这是我的代码,我希望你能帮助我用WebRequest来设置用户代理。

这是我的代码

    public string Post(string url, string Post, string Header, string Value)
    {
        string str_ReturnValue = "";
        WebRequest request = WebRequest.Create(url);
        request.Method = "POST";
        request.ContentType = "application/json;charset=UTF-8";                        
        request.Timeout = 1000000;
        if (Header != null & Value != null)
        {
            request.Headers.Add(Header, Value);                                
        }
        using (Stream s = request.GetRequestStream())
        {
            using (StreamWriter sw = new StreamWriter(s))
                sw.Write(Post);
        }
        using (Stream s = request.GetResponse().GetResponseStream())
        {                
            using (StreamReader sr = new StreamReader(s))
            {
                var jsonData = sr.ReadToEnd();
                str_ReturnValue += jsonData.ToString();
            }
        }
        return str_ReturnValue;
    }

我尝试添加request.Headers.Add("user-agent", _USER_AGENT);,但收到一条错误消息。

如何在c#中使用System.Net.WebRequest设置用户代理

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

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

或者,您可以使用WebRequest.CreateHttp代替强制转换。

如果您尝试使用HttpWebRequest而不是基本的WebRequest,则会为UserAgent公开一个特定的属性。

// Create a new 'HttpWebRequest' object to the mentioned URL.
var myHttpWebRequest=(HttpWebRequest)WebRequest.Create("http://www.contoso.com");
myHttpWebRequest.UserAgent=".NET Framework Test Client";
// Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
var myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
WebRequest postrequest = WebRequest.Create("protocol://endpointurl.ext");
((System.Net.HttpWebRequest)postrequest).UserAgent = ".NET Framework"