Как установить заголовок Content-Type для запроса HttpClient?

Как насчет этого:

echo "db.mycollection.findOne()" | mongo myDbName
echo "show collections" | mongo myDbName
619
задан Nikolai Samteladze 14 May 2015 в 17:36
поделиться

2 ответа

Для тех, кто обеспокоился с charset

, у меня был совершенно особый случай, что поставщик услуг не принял набор символов, и они отказываются изменять подструктуру для разрешения его... К сожалению, HttpClient устанавливал заголовок автоматически через StringContent, и неважно при передаче пустого указателя или Кодирования. UTF8, это будет всегда устанавливать набор символов...

Сегодня я был на краю для изменения подсистемы; перемещение от HttpClient до чего-либо еще, что что-то прибыло по моему мнению..., почему бы не использовать отражение для опустошения "набора символов"?... И прежде чем я даже пробую его, я думал о пути, "возможно, я могу изменить его после инициализации", и это работало.

Вот то, как можно установить точный "application/json" заголовок без"; charset=utf-8".

var jsonRequest = JsonSerializeObject(req, options); // Custom function that parse object to string
var stringContent = new StringContent(jsonRequest, Encoding.UTF8, "application/json");
stringContent.Headers.ContentType.CharSet = null;
return stringContent;

Примечание: Эти null значение в следующем не будет работать и добавлять"; charset=utf-8"

return new StringContent(jsonRequest, null, "application/json");
5
ответ дан 22 November 2019 в 21:42
поделиться

Необходимо сделать это как это:

    HttpContent httpContent = new StringContent(@"{ the json string }");
    httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));                
    HttpResponseMessage message = client.PostAsync(@"{url}", httpContent).Result;
0
ответ дан 22 November 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: