远程服务器返回错误:(403)Asp.net C#Instagram中禁止。(HttpWebRequest)
当我访问远程服务器返回错误:(403)Asp.net C#Instagram中禁止。(HttpWebRequest),c#,asp.net,httpwebrequest,webclient,instagram,C#,Asp.net,Httpwebrequest,Webclient,Instagram,当我访问 response = request.GetResponse();// request is a HttpWebRequest's object 远程服务器返回错误:(403)禁止。错误。但是,当我在浏览器url中执行请求中的url时,它会被重定向到我指定的页面 这是完整的代码 string newPostLink = string.Format("https://instagram.com/oauth/authorize/?client_id={0}&redirec
response = request.GetResponse();// request is a HttpWebRequest's object
远程服务器返回错误:(403)禁止。错误
。但是,当我在浏览器url中执行请求中的url时,它会被重定向到我指定的页面
这是完整的代码
string newPostLink = string.Format("https://instagram.com/oauth/authorize/?client_id={0}&redirect_uri=http://localhost:2163/Main.aspx&response_type=code&scope=basic", clientId);
HttpWebRequest request =(HttpWebRequest) WebRequest.Create(newPostLink);
request.AllowAutoRedirect = false;
request.Referer = newPostLink;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0)";
request.Accept = "/";
request.UseDefaultCredentials = true;
request.Credentials = CredentialCache.DefaultCredentials;
if (request.Proxy != null)
{
request.Proxy.Credentials = CredentialCache.DefaultCredentials;
}
var response = request.GetResponse();
这可能与您在WebRequest中发送的UserAgent字符串有关。
您可以尝试更改UserAgent字符串,以模拟来自Firefox的请求,看看它是否工作。Mozilla/5.0(Windows;U;MSIE 9.0;Windows NT 9.0;en US)是我正在使用的UserAgent字符串。这可能是因为您需要传递oauth详细信息。使用浏览器时,您可能已登录already@MarkPM我已经传递了详细信息(ClientId,RedirectUri,response_type,scope);HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(newPostLink);request.AllowAutoRedirect=false;request.Referer=newPostLink;request.Method=“POST”;request.ContentType=“application/x-www-form-urlencoded”;request.UserAgent=“Mozilla/5.0(兼容;MSIE 9.0;Windows NT 7.1;Trident/5.0)”;请求。接受=“/”;request.UseDefaultCredentials=true;request.Credentials=CredentialCache.DefaultCredentials;如果(request.Proxy!=null){request.Proxy.Credentials=CredentialCache.DefaultCredentials;}var response=request.GetResponse();