Я пытаюсь сделать запрос GET в C #, и мне нужно установить заголовок Content-Type на application / json и установить заголовок с моим ключом API. Я пытался искать, но, к удивлению, не нашел простого способа сделать это.
Этот ответ очень близок к тому, что я хочу, потому что они могут установить здесь заголовок Content-Type, но мне также нужно установить настраиваемый заголовок для моего ключа API и StringContent не имеет дополнительных полей для такой вещи.
request.Content = new StringContent("{\"name\":\"John Doe\",\"age\":33}",
Encoding.UTF8,
"application/json");//CONTENT-TYPE header
^ их ответ, для справки.
Это мой код, но я получаю нулевой результат. Я знаю, что я могу поразить API в почтальоне с этими значениями, но я предполагаю, что способ настройки моего HttpRequestMessage неверен, поэтому запрос не выполняется.
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage
{
Method = HttpMethod.Get
};
// need Content to be not null, this seems wrong
request.Content = new StringContent("");
// need to set Content-Type to application/json
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
// set api-key header
request.Content.Headers.Add("api-key", apiAdminKey);
request.RequestUri = new Uri($"{URL}?id={id}");
return client.SendAsync(request, HttpCompletionOption.ResponseContentRead);
Любой совет?
Обновление
Работает только с HttpClient, по какой-то причине я подумал, что не могу установить заголовки, используя client.DefaultRequestHeaders.Add.
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("api-key", apiAdminKey);
return client.GetAsync($"{URL}?id={id}");
Спасибо за помощь !!!!