我正在寻找一种方式与需要登录,然后重定向到另一个网址的API来工作。
问题是,到目前为止,我只来了一个办法,使因为我想要做的每个动作2个的HTTP请求:第一,与AllowRedirect得到饼干= false,那么得到实际的URI,并做了第二次请求与该cookie:C#中的HttpWebRequest的其中发送的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();
}
这似乎非常低效。有另一种方法吗?
谢谢!
好吧,代码方面,没有更好的方法来实现这个吗? – Nir 2010-04-25 13:54:43
@Nir:没有特别的(因为你没有设置任何其他为原始请求)。 – Richard 2010-04-26 10:51:07