У меня есть простой Asp.Net Core
WebApi, где я использую HttpClient
для отправки некоторых веб-запросов custum. Я использую HttpClient
вот так:
services.AddHttpClient<IMyInterface, MyService>()
...
public class MyService : IMyInterface
{
private readonly HttpClient _client;
public MyService(HttpClient client)
{
_client = client;
}
public async Task SendWebRequest()
{
var url = "https://MyCustomUrl.com/myCustomResource";
var request = new HttpRequestMessage(HttpMethod.Get, url);
var response = await _client.SendAsync(request);
...
}
}
Я заметил, что когда я отправляю несколько запросов, HttpClient
сохраняет куки, которые он получил с первым ответом в Set-Cookie
заголовке. Он добавляет эти куки в последовательные заголовки request . (Я проверил это с fiddler
). Расход:
//First requst
GET https://MyCustomUrl.com/myCustomResource HTTP/1.1
//First response
HTTP/1.1 200 OK
Set-Cookie: key=value
...
//Second request
GET https://MyCustomUrl.com/myCustomResource HTTP/1.1
Cookie: key=value
//Second response
HTTP/1.1 200 OK
...
Есть ли способ заставить HttpClient
не добавлять куки?
Это происходит только в том же сеансе, поэтому, если я выберу HttpClient
, файлы cookie не будут добавлены. Но утилизация HttpClient
может привести к другим проблемам.