При тестировании вызова через Postman и C # WebRequest это работает, но я не могу сделать то же самое, используя HttpClient с вызовом PostAsync или PostJsonAsync.
Ошибка: неподдерживаемый тип носителя, хотя application / json требуется и применяется.
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders
.Accept
.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent(data, Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("https://pos.api.here.com/positioning/v1/locate?app_id={id}&app_code={code}", content);
return response;
StatusCode: 415, ReasonPhrase: 'Unsupported Media Type', версия: 1.1, Content: System.Net.Http.HttpConnection + HttpConnectionResponseContent, заголовки: {Дата: пт, 08 ноя. 2019 13:38:37 GMT Сервер: nginx-clojure Тип содержимого: application / json Длина содержимого: 114}
WebRequest
HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;
if (!string.IsNullOrEmpty(data))
{
request.ContentType = "application/json";
request.Method = "POST";
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(data);
streamWriter.Flush();
streamWriter.Close();
}
}
using (HttpWebResponse webresponse = request.GetResponse() as HttpWebResponse)
{
using (StreamReader reader = new StreamReader(webresponse.GetResponseStream()))
{
string response = reader.ReadToEnd();
return response;
}
}