获得Instagram网址的响应

时间:2015-09-14 19:38:12

标签: c# httpwebrequest

我正在尝试集成第三方应用程序。程序如下:

  1. 我有第三方的网址(需要登录)
  2. 我必须将其粘贴到浏览器中。结果将是浏览器中的URL。
  3. 例如:网址如下:

    1. 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

    2. 现在,当我在浏览器中粘贴此网址时(需要登录,一旦设置了登录的cookie),它就会重定向到另一个网址。

    3. 示例: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。但从程序上讲它并没有。

1 个答案:

答案 0 :(得分:1)

由于HttpWebRequest执行了自动重定向,因此您收到了不同的html源代码。您需要先禁用自动重定向。可以使用以下代码完成:

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(link);
myReq.AllowAutoRedirect = false;

Documentation

之后,请按照api提供的所有步骤操作。为了更好地理解整个路径,请使用Fiddler等嗅探工具。