当通过Postman和C#WebRequest测试呼叫时,它可以工作,但是我无法使用带有PostAsync或PostJsonAsync呼叫的HttpClient来执行相同的操作。
错误:尽管需要并应用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;
状态码:415,原因短语:“不支持的媒体类型”,版本:1.1, 内容:System.Net.Http.HttpConnection + HttpConnectionResponseContent, 标头:{日期:2019年11月8日星期五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;
}
}