我试图发送一个GET请求来下载的http://footlocker.com/ HTML内容:奇403错误使用Web客户端
Console.WriteLine(new WebClient().DownloadString("http://footlocker.com"));
但我得到一个403错误。为了测试,我使用Python,试图发送一个GET请求(请求库),我成功地获得了200响应以及HTML内容:
r = requests.get('http://footlocker.com')
print(r.text)
要看到差距,我印在Python头要求,这就是我的了:
{'User-Agent': 'python-requests/2.13.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
于是,我就派与Python的Web客户端请求需要用户代理字符串:
WebClient wc = new WebClient();
wc.Headers[HttpRequestHeader.UserAgent] = "python-requests/2.13.0";
Console.WriteLine(wc.DownloadString("http://footlocker.com"));
但我仍然有403什么可能Python的请求库和WebClient之间的区别?我在这里错过了很明显的东西吗这是为什么发生?
如果问题出在头也许这将帮助'wc.Headers.Add(“用户 - 代理:python-requests/2.13.0“);',基本上你可以尝试复制Python输入的头文件 – thunderbird
它给出了一个错误:'指定的值具有无效的HTTP头字符。'所以我将它改为'wc .Headers.Add(“User-Agent”,“python-requests/2.13.0”);'我得到了一个403. – RaghavJhavar