Для проекта я должен использовать API, который использует GET-глагол и который обязательно требует свойства Content-type, но это не стандартно, и я хотел бы установить это свойство в "применение/JSON".C# HttpClient ProtocolViolationException
Я использую C# HttpClient и после просмотра во всей вселенной я не могу найти способ сделать это. У меня всегда есть «ProtocolViolationException», очевидно ...
Есть ли способ использовать запрос «Content-type» и «GET» с помощью HttpClient?
Я использую этот код
public async Task<HttpResponseMessage> GetAsync(string uri, double timeout = 0, string token = null)
{
using(var handler = new HttpClientHandler())
{
if(handler.SupportsAutomaticDecompression)
{
handler.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
}
using(var client = new HttpClient(handler))
{
var request = new HttpRequestMessage(HttpMethod.Get, uri);
HttpResponseMessage httpResponseMessage = null;
if(timeout > 0)
{
client.Timeout = TimeSpan.FromSeconds(timeout);
}
if(!string.IsNullOrWhiteSpace(token))
{
request.Headers.Add("authorization", token);
}
request.Content = new StringContent("");
request.Content.Headers.Remove("Content-type");
request.Content.Headers.Add("Content-type", "application/json");
httpResponseMessage = await client.SendAsync(request);
return httpResponseMessage;
}
}
}
Заранее спасибо :)
Пожалуйста, продемонстрируйте, что вы пробовали. Вы можете легко указать заголовок Content-Type в 'HttpRequestMessage' ... –
Мы будем более полезны, если вы поместите некоторый код для просмотра. – Hovo