【发布时间】:2013-09-13 18:37:13
【问题描述】:
我正在寻找一种方法来使用需要登录的 API,然后重定向到另一个 URL。
问题是,到目前为止,我只想出了一种方法来为我想要执行的每个操作发出 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();
}
这似乎非常低效。还有其他方法吗?
谢谢!
【问题讨论】:
标签: c# api cookies httpwebrequest