我正在寻找一种与需要登录并重定向到另一个URL的API进行交互的方法。
问题是,到目前为止,我只想出了一种每个操作都需要进行2个Http请求的方法:首先使用AllowRedirect=false获取cookie,然后获取实际URI并使用cookie进行第二个请求。
问题是,到目前为止,我只想出了一种每个操作都需要进行2个Http请求的方法:首先使用AllowRedirect=false获取cookie,然后获取实际URI并使用cookie进行第二个请求。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sUrl);
request.AllowAutoRedirect = false;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string redirectedUrl = response.Headers["Location"];
if (!String.IsNullOrEmpty(redirectedUrl))
{
redirectedUrl = "http://www.ApiUrlComesHere.com/" + redirectedUrl;
HttpWebRequest authenticatedRequest = (HttpWebRequest)WebRequest.Create(redirectedUrl);
authenticatedRequest.Headers["Cookie"] = response.Headers["Set-Cookie"];
response = (HttpWebResponse)request.GetResponse();
}
看起来非常低效。有其他的方法吗?
谢谢!