Gra*_*ath 5 .net apache webclient http-headers http-status-code-403
奇怪的是,我正在尝试阅读许多不同网站的<Head>部分,而一种特定类型的服务器Apache有时会禁止代码403.并非所有apache服务器都这样做,因此它可能是配置设置或服务器的特定版本.
当我使用网络浏览器(例如Firefox)检查网址时,页面加载正常.代码sorta看起来像这样:
var client = new WebClient();
var stream = client.OpenRead(new Uri("http://en.wikipedia.org/wiki/Barack_Obama"));
Run Code Online (Sandbox Code Playgroud)
通常,403是一种访问权限失败的东西,但这些通常是不安全的页面.我认为Apache正在过滤请求标头中的某些东西,因为我不打算创建任何东西.
也许对Apache有更多了解的人可以给我一些关于标题中缺少什么的想法.我想保持标头尽可能小,以尽量减少带宽.
谢谢
dug*_*gas 10
尝试设置UserAgent标头:
string _UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
client.Headers.Add(HttpRequestHeader.UserAgent, _UserAgent);
Run Code Online (Sandbox Code Playgroud)
小智 5
我有一个类似的问题,下面的设置解决了它
Client.Headers["Accept"] = "application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
Client.Headers["User-Agent"] ="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDC)";
Run Code Online (Sandbox Code Playgroud)