我正在开发我的Instagram桌面应用程序,因为403 Forbidden错误而无法授权用户。
我无法从登录POST请求中获取响应。我的POST字符串看起来像这样:
csrfmiddlewaretoken=98d25eec9c3d1a6935e5a491ff2fa543&username=myname&password=mypassword
这就是我如何形成我的要求:
Uri url = new Uri
("https://instagram.com/accounts/login/?next=/oauth/authorize/?client_id=" +
instagramClient_id + "&redirect_uri=" + instagramRedirectUrl +
"&response_type=token");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.CookieContainer = cc;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = true;
byte[] sentData = Encoding.UTF8.GetBytes(data);
request.ContentLength = sentData.Length;
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(sentData, 0, sentData.Length);
}
WebResponse response = request.GetResponse();
结果是 - 403禁止。无法找出我做错了什么。
我无法提及我已经测试了其他一些方法来完成授权,并注意到Google Chrome在使用Instagram时会收到更多C#请求的Cookie。到目前为止,我的桌面应用程序还没有收到" sessionid"," __ qca"," __ utma"," __ utmb",&# 34; __ utmc"," __ utmz"," ccode"和" user_segment"饼干。但它收到了" csrftoken"和" mid"饼干。也许这就是为什么我总是有403错误?
答案 0 :(得分:3)
使用请求网址的值添加Referer
标头。