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

嗨,我正在尝试使用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);” 但是我收到一条错误消息。

通过将其转换为HttpWebRequestHttpWebRequest上使用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"