J'ai le code suivant qui fonctionne avec succès. Je ne peux pas comprendre comment retirer le cookie de la réponse. Mon objectif est que je souhaite pouvoir définir des cookies dans la demande et supprimer les cookies de la réponse. Pensées?
private async Task<string> Login(string username, string password)
{
try
{
string url = "http://app.agelessemail.com/account/login/";
Uri address = new Uri(url);
var postData = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("username", username),
new KeyValuePair<string, string>("password ", password)
};
HttpContent content = new FormUrlEncodedContent(postData);
var cookieJar = new CookieContainer();
var handler = new HttpClientHandler
{
CookieContainer = cookieJar,
UseCookies = true,
UseDefaultCredentials = false
};
var client = new HttpClient(handler)
{
BaseAddress = address
};
HttpResponseMessage response = await client.PostAsync(url,content);
response.EnsureSuccessStatusCode();
string body = await response.Content.ReadAsStringAsync();
return body;
}
catch (Exception e)
{
return e.ToString();
}
}
Voici la réponse complète:
HttpResponseMessage response = await client.PostAsync(url,content);
response.EnsureSuccessStatusCode();
Uri uri = new Uri(UrlBase);
var responseCookies = cookieJar.GetCookies(uri);
foreach (Cookie cookie in responseCookies)
{
string cookieName = cookie.Name;
string cookieValue = cookie.Value;
}
c#
async-await
dotnet-httpclient
Peter Kellner
la source
la source
Réponses:
Pour ajouter des cookies à une demande, remplissez le conteneur de cookies avant la demande avec
CookieContainer.Add(uri, cookie)
. Une fois la demande effectuée, le conteneur de cookies sera automatiquement rempli avec tous les cookies de la réponse. Vous pouvez ensuite appeler GetCookies () pour les récupérer.la source
httpclient
est construit à partir de l'usine httpclient? ie méthode de générateur ajoutée aux services.AddHttpClientIl existe une alternative si vous n'avez pas accès au
HttpClient
et que vous ne pouvez pas l'injecterCookieContainer
. Cela fonctionne dans .NET Core 2.2:la source
Vous pouvez facilement obtenir une valeur de cookie avec l'URL donnée.
la source