J'utilise le HttpClient
dans theSystem.Net.Http
mais je vais avoir des problèmes face à cookies. Je suis venu à travers d'autres messages expliquant comment configurer des cookies avec HttpClient.
créer un CookieContainer
pour le HttpClientHandler.CookieHandler
et utiliser ce conteneur pour les cookies. Lorsque initialisé, sa valeur est évidemment 0 et après avoir fait le PostAsync
, le CookieContainer
contient un cookie. Je parcours une boucle foreach
pour imprimer les valeurs et j'obtiens la valeur du cookie. Tout semble fonctionner comme il se doit. Le problème est Le problème est que même si il semble que j'accepte les cookies, le site me redirige vers une page m'informant que je n'accepte pas les cookies. J'ai vérifié avec un navigateur (le faisant n'accepte pas des biscuits) et c'est le résultat exact que j'obtiens avec mon HttpClient
.Cookies sur Windows Phone 8.1 en utilisant HttpClient
La fonction globale de mon code est de donner des valeurs pour un login et essayer de les afficher. La connexion semble fonctionner comme prévu bien qu'elle me redirige en me disant que je n'accepte pas les cookies - même si mon CookieContainer
contient un cookie. Je ne suis pas sûr où cela va mal, mais il semble que le site ne puisse pas voir que j'accepte les cookies. J'ai essayé le réglage httpClientHandler.UseCookies = true;
mais sans aucune différence. Le site Web auquel j'essaie d'accéder est le système de lecture des notes de mon université et je n'ai accès à aucun code.
Mon code est illustré ci-dessous:
{
var httpClientHandler = new HttpClientHandler();
//Creating cookiecontainer and printing Count for debug purpose
var cookieContainer = new CookieContainer();
Debug.WriteLine("Cookies " + cookieContainer.Count);
httpClientHandler.CookieContainer = cookieContainer;
var httpClient = new HttpClient(httpClientHandler);
HttpResponseMessage response = await httpClient.PostAsync(url, new FormUrlEncodedContent(values));
Debug.WriteLine("Response code" + response.StatusCode);
Debug.WriteLine("Response: " + response.IsSuccessStatusCode);
response.EnsureSuccessStatusCode();
string content = await response.Content.ReadAsStringAsync();
//Print amount of cookies after PostAsync - Should contain cookie now
Debug.WriteLine("Cookies " + cookieContainer.Count);
//Printing the values of the added cookies
foreach (Cookie cookie in cookieContainer.GetCookies(new Uri(url)))
{
Debug.WriteLine("Cookie contains: " + cookie.Value.ToString());
}
}
Ceci est mon premier Windows Phone App et il est la première fois en utilisant la HttpClient
mais je l'ai utilisé quelques jours en train de lire à ce sujet afin espère que la réponse est non à évident. Merci beaucoup - votre aide est très appréciée.