我正在开发我的 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 Forbidden。无法找出我做错了什么。
我不得不提到我已经测试了一些其他方法来完成授权,并注意到在使用 Instagram 时,Google Chrome 收到的 cookie 比 C# 请求多得多。到目前为止,我的桌面应用程序没有收到“sessionid”、“__qca”、“__utma”、“__utmb”、“__utmc”、“__utmz”、“ccode”和“user_segment”cookie。但它会收到“csrftoken”和“mid”cookie。也许这就是为什么我总是遇到 403 错误?