Je cherche un moyen de travailler avec une API qui nécessite une connexion, puis redirige vers une autre URL. Le fait est que jusqu'ici, je n'ai trouvé qu'un moyen de faire 2 requêtes Http pour chaque action que je veux faire: d'abord, obtenir cookie avec AllowRedirect = false, puis obtenir l'URI réelle et faire une deuxième requête avec le cookie:C# Envoyer un cookie dans un HttpWebRequest qui est redirigé
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();
}
Il semble terriblement inefficace. Y a-t-il un autre moyen?
Merci!
OK, et le code, est-ce qu'il n'y a pas une meilleure façon de mettre en œuvre cela? – Nir
@Nir: pas particulièrement (puisque vous ne définissez rien d'autre pour la requête d'origine). – Richard