Issue
Я бы хотел POST
a JSON
запрос с использованием Flurl с указанным заголовком содержимого Content-Language
.Мне уже удалось установить тип содержимого (Content-Type
) без каких-либо проблем:
string response = await "https://jsonplaceholder.typicode.com/".AppendPathSegment("posts")
.WithHeaders(new { Content_Type = "application/json; charset=UTF-8" })
.PostJsonAsync(new { title = "bar", body = "foo", userId = 1 }).ReceiveString();
Console.WriteLine(response);
, правильно возвращая:
{
"title": "bar",
"body": "foo",
"userId": 1,
"id": 102
}
Однако, пытаясь указать Content-Language
дополнительно:
string response = await "https://jsonplaceholder.typicode.com/".AppendPathSegment("posts")
.WithHeaders(new { Content_Type = "application/json; charset=UTF-8", Content_Language = "en-US" })
.PostJsonAsync(new { title = "bar", body = "foo", userId = 1 }).ReceiveString();
Console.WriteLine(response);
ломает код, выдавая ошибку
Неправильное имя заголовка.Убедитесь, что заголовки запросов используются с HttpRequestMessage, заголовки ответов с HttpResponseMessage и заголовки содержимого с объектами HttpContent.
Я понимаю, что заголовки содержимого следует устанавливать для содержимого, а не для запроса, однако после чтенияэтот ответ (и этот ) казалось, что больше нет необходимости различать уровни запросов и контента с Flurl 2.0 +.
Примечание
Используемый API-это макет.Мне известно, что при использовании PostJsonAsync
автоматически устанавливается заголовок Content-Type
, однако для моего случая использования он будет установлен на application/vnd.api+json
и, следовательно, должен быть указан явно.
Вопрос
Что я делаю не так?Что я не понимаю в заголовках контента?
Чем Content-Language
отличается от Content-Type
при добавлении его в запрос?