Можно ли установить тип содержимого по умолчанию «application / json; v = 2.0» - PullRequest
2 голосов
/ 12 апреля 2019

Можно ли установить тип содержимого по умолчанию "application / json; v = 2.0". Я говорю по умолчанию, потому что я использую класс HttpClient и использую DefaultRequestHeaders для установки значений по умолчанию для моих прокси.

Я следовал этому примеру для создания своих заголовков https://stackoverflow.com/a/10679340/196526, но я также использую управление версиями, и информация о версиях сохраняется в ContenT-Type

public class BankAccountProxy
{
    public void SetToken()
    {
        Client = new HttpClient();
        Client.BaseAddress = new Uri(System.Configuration.ConfigurationManager.AppSettings["ApiRoute"]);
        Client.DefaultRequestHeaders.Accept.Clear();
        Client.DefaultRequestHeaders.Add("Token", ApiInformations.ApiToken);
        Client.DefaultRequestHeaders
            .Accept
            .Add(new MediaTypeWithQualityHeaderValue($"application/json;v=2.0"));
    }

    public async Task<IEnumerable<BankAccount>> Get()
    {
        HttpResponseMessage response = await Client.GetAsync($"/api/BankAccount/");
        response.EnsureSuccessStatusCode();
        IEnumerable<BankAccount> bankAccount;
        bankAccount = await response.Content.ReadAsAsync<IEnumerable<BankAccount>>();
        return bankAccount;
    }
}

Когда я запускаю этот код, я получаю

Сообщение об исключении: формат значения application / json; v = 2.0 недействительный.

Из-за v = 2.0, который, вероятно, не является допустимым MediaTypeWithQualityHeaderValue.

Я хочу, чтобы я всегда отправлял информацию о версии в своем значении заголовка Content-Type. Как я могу инициализировать это? Как я могу сказать своему коду, что мой тип контента по умолчанию - не качественный заголовок, а действительный.

Для информации вот мой запрос отлично работает на Почтальон:

enter image description here

...