我试图调用api auth方法,该方法不会在json中提供会话ID,而是重定向到其他页面并将会话ID作为cookie提供。
以下是网站所有者建议我做的事情:
•将您的客户配置为不遵循重定向 - 只需获取网址即可 •如果它使您保持在当前页面中,则表示登录失败 •如果您被重定向到main / index,则您的身份验证正确,并且您可以保留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时,我没有获得重定向的网址,但获得了cookie。如果我尝试将AllowAutoRedirect设置为true,那么我将获得重定向的URL,但不会获取cookie。如果我将AllowAutoRedirect保持为false我如何确保登录成功并且我将正确的会话ID作为cookie?
答案 0 :(得分:0)
我明白了。
如果我们将AllowAutoRedirect设置为false,则响应将添加一个标题作为包含重定向网址的位置。我在该位置获得了重定向的URL,在这种情况下,http响应应为302。