无法从重定向响应中获取 cookie



>我正在尝试调用一个 api auth 方法,该方法不提供 json 中的会话 ID,而是重定向到其他页面并将会话 ID 作为 cookie 提供。

以下是网站所有者建议我做的事情:

• 将客户端配置为不遵循重定向 - 只需获取 URL•如果它使您停留在当前页面,则表示登录失败•如果您被重定向到主/索引,您将正确进行身份验证,并且可以保留cookie以备进一步请求

 var webRequest = (HttpWebRequest)WebRequest.Create("https:\URL");
        webRequest.UserAgent =
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36";
        webRequest.Method = "POST";
        webRequest.Timeout = 60000;
        webRequest.AllowAutoRedirect = true;
        webRequest.CookieContainer = new CookieContainer();
        webRequest.ContentType = "application/x-www-form-urlencoded";
        webRequest.ContentLength = data.Length;
        using (var stream = webRequest.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }
        var response = (HttpWebResponse)webRequest.GetResponse();
        var test = response.ResponseUri;

当我尝试将 AllowAutoRedirect 显示为 false 时,我没有获得重定向的 URL,但得到了 cookie。如果我尝试使用允许自动重定向为真,那么我得到了重定向的网址,但没有得到cookie。如果我将允许自动重定向保留为 false 如何确定登录成功并且我获得了正确的会话 ID 作为 cookie?

我想通了。

如果我们将 AllowAutoRedirect 设置为 false,则响应将添加一个包含重定向 url 的标头作为位置。我在该位置得到了重定向的 url,在这种情况下,http 响应应该是 302。

相关内容

  • 没有找到相关文章

最新更新