HttpWebResponse返回远程服务器返回错误:(403)禁止
我想HTML输出HttpWebResponse返回远程服务器返回错误:(403)禁止
,但我总是得到
HTTPWEBRESPONSE远程服务器返回错误:(403 )禁止
我使用HttpWebResponse
protected string GetHtmlStringA(string url)
{
string sHtml = "";
HttpWebRequest request;
HttpWebResponse response = null;
Stream stream = null;
request = (HttpWebRequest)WebRequest.Create(url);
response = (HttpWebResponse)request.GetResponse();
stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream, System.Text.Encoding.Default);
sHtml = sr.ReadToEnd();
if (stream != null) stream.Close();
if (response != null) response.Close();
return sHtml;
}
我也尝试用UserAgent的却是同样的
req.request=
"Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.13) Gecko/2009073022 Firefox/3.0.13";
我无法找到论坛或您需要通过身份验证凭据与Web请求的任何解决方案互联网
看来你还需要发送一个Accept
标题。通过以下标题发送请求将生效:
request.UserAgent = "Foo";
request.Accept = "*/*";
:
request.Credentials = new NetworkCredentials("username", "password");
不是为我工作 – 2016-06-21 12:38:55
听起来像他们不希望你屏幕刮他们的内容。
你可以尝试用提琴手来看看请求/响应,看看发生了什么。
确保您的凭据设置正确。
request.Credentials = CredentialCache.DefaultCredentials;
// if we have a proxy set its creds as well
if(request.Proxy != null)
{
request.Proxy.Credentials = CredentialCache.DefaultCredentials;
}
如果您需要特定的凭证,你可以创建他们这样
request.Credentials = new NetworkCredentials("username", "password");
嗯非解决方案的作品。我不喜欢用户名和密码。为什么我需要用户名和密码来阅读HTML? – senzacionale 2010-07-01 07:44:42
不适合我 – 2016-06-21 12:38:47
它似乎将接受头为您输入是必要的。对于使用webclient的人可以这样做:'webClient.Headers.Add(“accept”,“*/*”);' – 2014-06-16 15:37:55
对我无帮助 – 2016-06-21 12:37:48
您的解决方案不起作用 – 2017-11-08 07:02:53