我正在尝试集成第三方应用程序。流程如下:
- 我有第三方的网址(需要登录)
- 我必须将其粘贴到浏览器中。其结果将是浏览器中的一个 url。
例如:url 是这样的:
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
现在,当我将此 url 粘贴到浏览器中时(需要登录,一旦设置了登录 cookie),它会重定向到另一个 url。
示例: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();
但是变量 result 包含一些其他的 html(登录页面)。相反,我期待这个 url hashgurus.com/redirectd.aspx?code=abcdedf
的响应。
当我在浏览器中手动执行所有操作时,一切都会顺利进行,因为已设置 cookie。但在编程上它不会。
最佳答案
由于 HttpWebRequest
完成的自动重定向,您收到不同的 html 源代码。您需要先禁用自动重定向。可以使用以下代码完成:
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(link);
myReq.AllowAutoRedirect = false;
之后,按照 api 提供的所有步骤进行操作。为了更好地了解整个路径,请使用嗅探工具,如 Fiddler .
关于c# - 获取 Instagram 网址的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32572582/