And*_*eiC 63 c# windows-phone-7
为Windows Phone 7的WebClient请求设置User-Agent标头的正确方法是什么?我找到了两个选项,但不确定哪一个是正确的.考虑WebClient对象:
WebClient client = new WebClient();
Run Code Online (Sandbox Code Playgroud)
我看到了2个选项:
使用以下方式设置User-Agent:
client.Headers["User-Agent"] = "myUserAgentString";
Run Code Online (Sandbox Code Playgroud)使用WebHeaderCollection设置User-Agent:
WebHeaderCollection headers = new WebHeaderCollection();
headers[HttpRequestHeader.UserAgent] = "userAgentString";
client.Headers = headers;
Run Code Online (Sandbox Code Playgroud)你能否告诉我上面两种方法中哪一种是正确的?
Doc*_*oms 101
您可以查看WebClient文档的,增加了一个用户代理给您一个C#示例WebClient,并在这里为Windows Phone的一个样本.
这是C#的示例:
WebClient client = new WebClient ();
// Add a user agent header in case the
// requested URI contains a query.
client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; " +
"Windows NT 5.2; .NET CLR 1.0.3705;)");
Run Code Online (Sandbox Code Playgroud)
这是Windows Phone(Silverlight)的示例:
request.Headers["UserAgent"] = "appname";
// OR
request.UserAgent = "appname";
Run Code Online (Sandbox Code Playgroud)
Amb*_*ung 23
我发现WebClient在一次请求后不断删除我的User-Agent标头,我每次都厌倦了设置它.我使用hack通过创建自己的自定义WebClient并覆盖GetWebRequest方法来永久设置User-Agent .希望这可以帮助.
public class CustomWebClient : WebClient
{
public CustomWebClient(){}
protected override WebRequest GetWebRequest(Uri address)
{
var request = base.GetWebRequest(address) as HttpWebRequest;
request.UserAgent="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0;)";
//... your other custom code...
return request;
}
}
Run Code Online (Sandbox Code Playgroud)
你也可以使用它:
client.Headers.Add(HttpRequestHeader.UserAgent, "My app.");
Run Code Online (Sandbox Code Playgroud)