I've got from Postman this code:
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://google.com");
request.Headers.Add("Authorization", "Basic ************");
request.Headers.Add("Cookie", "JSESSIONID=AA315A9B553F68544DDAF233DAC7734B");
var content = new StringContent(string.Empty);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Postman set a cookie named JSESSIONID.
I don't understand how I can get from server and set to request.Headers
the cookie by myself.
I've tried this here, but it doesn't work:
var httpClient = new HttpClient();
var cookies = new CookieContainer();
var handler = new HttpClientHandler();
handler.CookieContainer = cookies;
httpClient = new HttpClient(handler);
await httpClient.GetAsync(uri);
using var messageResponse = await httpClient.GetAsync(uri);
Cookie cookie = cookies.GetCookies(uri).FirstOrDefault(c => c.Name == "JSESSIONID");
var request = new HttpRequestMessage(HttpMethod.Get, uri);
request.Headers.Add("Authorization", "Basic *********");
request.Headers.Add("Cookie", $"{cookie.Name}={cookie.Value}");
var content = new StringContent(string.Empty);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
request.Content = content;
var response = await httpClient.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());