我正在尝试集成第三方应用程序。程序如下:
例如:网址如下:
https://api.instagram.com/oauth/authorize?client_id=157c0c51ef58435893a50e0430b5f53b&redirect_uri=http://www.hashgurus.com/redirect.aspx&response_type=code&scope=likes+basic+comments+relationships
现在,当我在浏览器中粘贴此网址时(需要登录,一旦设置了登录的cookie),它就会重定向到另一个网址。
示例:hashgurus.com/redirectd.aspx?code=abcdedf
。此url的输出是一个字符串。
现在我想在控制台应用程序中以编程方式模拟它。我的代码:
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(link);
WebResponse webresponse = myReq.GetResponse();
StreamReader sr = new StreamReader(webresponse.GetResponseStream(), System.Text.Encoding.UTF8);
string result = sr.ReadToEnd();
sr.Close();
但变量结果包含其他一些html(登录页面)。相反,我期望这个网址hashgurus.com/redirectd.aspx?code=abcdedf
的响应。
当我在浏览器中手动完成所有操作时,一切都顺利进行,因为设置了cookie。但从程序上讲它并没有。
答案 0 :(得分:1)
由于HttpWebRequest
执行了自动重定向,因此您收到了不同的html源代码。您需要先禁用自动重定向。可以使用以下代码完成:
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(link);
myReq.AllowAutoRedirect = false;
之后,请按照api提供的所有步骤操作。为了更好地理解整个路径,请使用Fiddler等嗅探工具。