C# WebRequest未重定向
方法: URL为,必须重定向到某个语言区域,例如- 但它抛出WebException,并显示无法解析远程名称的消息:“page” UPD:我添加了useragentC# WebRequest未重定向,c#,httprequest,httpresponse,C#,Httprequest,Httpresponse,方法: URL为,必须重定向到某个语言区域,例如- 但它抛出WebException,并显示无法解析远程名称的消息:“page” UPD:我添加了useragent public RequestTest Test(string url) { var test = new RequestTest() { Url = url }; var sw = new Stopwatch(); var request = WebRequest.Create
public RequestTest Test(string url)
{
var test = new RequestTest() { Url = url };
var sw = new Stopwatch();
var request = WebRequest.CreateHttp(test.Url);
request.AllowAutoRedirect = true;
request.Method = "HEAD";
request.UserAgent = "Accept-Language: en-US,en;q=0.5";
try
{
sw.Start();
using (var response = (HttpWebResponse)request.GetResponse())
{
sw.Stop();
test.Time = (int)sw.ElapsedMilliseconds;
test.StatusCode = response.StatusCode;
}
return test;
}
catch (WebException ex)
{
test.StatusCode = ((HttpWebResponse)ex.Response).StatusCode;
return test;
}
}
但我仍然得到相同的异常,远程名称无法解析:“page”
此外,重定向在我的浏览器中正常工作。所以,问题出在代码中。对于您试图访问的站点,添加如下接受语言标题就足够了:
request.UserAgent = "Accept-Language: en-US,en;q=0.5";
样本输出:
好的186
如果重定向程序无法确定语言,则它似乎没有默认设置
有关设置Accept Language:的更多信息。对于您尝试访问的站点,添加如下Accept Language标头即可:
request.UserAgent = "Accept-Language: en-US,en;q=0.5";
样本输出:
好的186
如果重定向程序无法确定语言,则它似乎没有默认设置
有关设置接受语言的更多信息:。在浏览器中对其进行了测试,并使用302找到响应…位置:/en/page/faq。也测试http://monosnap.com/ru/page/faq 并且页面存在。检查代码是否知道如何处理重定向如果您设置了一个可能包含语言的用户代理,以便重定向程序知道重定向到哪种语言,那么该代码是否工作@安德烈·莫尔顿是对的。我的浏览器包括接受语言:en US,en;提出请求时q=0.5。通过使用Accept语言重新发送请求再次测试:ru ru,ru;q=0.5,响应为302找到…位置:/ru/page/faq为什么要将Accept Language标头放在User Agent标头的字段中?在浏览器中对其进行了测试,并在响应为302找到…位置:/en/page/faq。也测试http://monosnap.com/ru/page/faq 并且页面存在。检查代码是否知道如何处理重定向如果您设置了一个可能包含语言的用户代理,以便重定向程序知道重定向到哪种语言,那么该代码是否工作@安德烈·莫尔顿是对的。我的浏览器包括接受语言:en US,en;提出请求时q=0.5。通过使用Accept语言重新发送请求再次测试:ru ru,ru;q=0.5,响应为302…位置:/ru/page/faq为什么要将Accept Language标头放在User Agent标头的字段中?