Saya mendapat kode berikut yang berfungsi dengan sukses. Saya tidak tahu bagaimana mengeluarkan cookie dari respon. Tujuan saya adalah saya ingin dapat mengatur cookie dalam permintaan dan mengeluarkan cookie dari respons. Pikiran?
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();
}
}
Inilah jawaban lengkapnya:
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
sumber
sumber
Jawaban:
Untuk menambahkan cookie ke permintaan, isi wadah cookie sebelum permintaan dengan
CookieContainer.Add(uri, cookie)
. Setelah permintaan dibuat, wadah cookie akan secara otomatis diisi dengan semua cookie dari respons. Anda kemudian dapat memanggil GetCookies () untuk mengambilnya kembali.sumber
httpclient
dibuat dari pabrik httpclient? yaitu metode pembangun ditambahkan ke layanan.AddHttpClientAda alternatif lain jika Anda tidak memiliki akses ke
HttpClient
dan tidak dapat menyuntikkanCookieContainer
. Ini berfungsi di .NET Core 2.2:sumber
Anda bisa dengan mudah mendapatkan nilai cookie dengan URL yang diberikan.
sumber