Я ищу способ работы с API, который требует входа в систему, а затем перенаправляет на другой URL.
Дело в том, что до сих пор я только придумал способ сделать 2 Http-запроса для каждого действия, которое я хочу сделать: сначала получить cookie с AllowRedirect = false, затем получить фактический 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();
}
Это кажется ужасно неэффективным. Есть ли другой способ?
Спасибо!