0

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());
Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
Michael
  • 1
  • 1

0 Answers0