gpt4 book ai didi

c# - WebRequest 没有被重定向

转载 作者:太空宇宙 更新时间:2023-11-03 21:07:59 26 4
gpt4 key购买 nike

方法:

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

网址是 http://monosnap.com/page/faq ,必须重定向到某些语言区域,例如 - http://monosnap.com/ru/page/faq

但它会抛出 WebException,并显示消息“无法解析远程名称:'page'”。

更新:我添加用户代理

request.UserAgent = "Accept-Language: en-US,en;q=0.5";

但我仍然遇到相同的异常“无法解析远程名称:'page'”此外,重定向在我的浏览器中正常工作。所以,问题出在代码上。

最佳答案

对于您尝试访问的站点,只需添加一个“Accept-Language” header ,如下所示:

using System;
using System.Diagnostics;
using System.Net;

namespace ConsoleApplication1
{
class Program
{

public class RequestTest
{
public string Url { get; set; }
public int Time { get; set; }
public HttpStatusCode StatusCode { get; set; }
}

public static 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.Headers.Add("Accept-Language: ru-RU, 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;
}
}

static void Main(string[] args)
{
var x = Test("http://monosnap.com/page/faq");
Console.WriteLine(x.StatusCode + " " + x.Time.ToString());
Console.ReadLine();

}
}
}

示例输出:

OK 186

如果无法确定语言,则重定向器似乎没有默认设置。

有关设置接受语言的更多信息:Setting language preferences in a browser .

关于c# - WebRequest 没有被重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39946164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com