2013-05-01 21 views
0

我正在開發我的Instagram桌面應用程序,並且由於403 Forbidden錯誤,我無法授權用戶。Instagram oAuth登錄失敗,出現403 Forbidden錯誤使用C#桌面應用程序

我被困在獲取來自登錄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合作時會收到更多的Cookie,然後會收到C#請求。到目前爲止,我的桌面應用沒有收到「sessionid」,「__qca」,「__utma」,「__utmb」,「__utmc」,「__utmz」,「ccode」和「user_segment」cookie。但它會收到「csrftoken」和「mid」cookie。也許這就是爲什麼我總是有403錯誤?

回答

3

Referer標頭加上請求URL的值。

+1

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – JNYRanger 2015-06-19 17:34:07

+0

@JNYRanger:據我所知,它*確實*回答(或者至少試圖回答)這個問題;添加一個Referer頭可能會或可能不會工作,但它確實在一些網絡認證系統上。請點擊自動評論時更加小心。 – 2015-06-20 00:39:18

+0

@NathanTuggy不錯,但是這是一個2歲的問題,它並不包含足夠的信息來準確地回答它。誠然,它可以基於系統進行潛在的解決,但對我來說似乎更值得評論。 – JNYRanger 2015-06-20 02:09:02

相關問題