【发布时间】:2017-07-05 08:01:52
【问题描述】:
我正在编写一个带有 POST 请求的服务:
[HttpPost]
[ActionName("Post")]
public HttpResponseMessage Post([FromBody]string JStringCont)
{
....
}
对该服务的调用如下:
string jsonContent="[{some json}]"
StringContent content = new StringContent(jsonContent);
_oHttpClient = new HttpClient();
_oHttpClient.DefaultRequestHeaders.Accept.Clear();
_oHttpClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
response = _oHttpClient.PostAsync(requestURI, content).Result;
服务显然是通过发送参数字符串内容来调用的。 我不能更改调用服务的方式。
我可以对服务本身进行更改。
POST 方法不能接受字符串格式。
我可以在接受字符串内容的 POST 请求中使用的参数是什么??
目前它给我错误:
响应:不支持的媒体类型
{"Message":"该资源不支持请求实体的媒体类型'text/plain'。","ExceptionMessage":"没有MediaTypeFormatter可用于从具有媒体的内容中读取'String'类型的对象在 System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent 内容,类型类型,IEnumerable@ 987654323@1 格式化程序,IFormatterLogger formatterLogger,CancellationToken cancelToken)"}
【问题讨论】:
-
你试过JsonResult吗?
-
尝试发送值为 application/json 的 Content-Type 标头?
-
我不允许触摸调用服务的代码。我想按照它被调用的方式进行服务
标签: c# .net asp.net-mvc asp.net-web-api asp.net-web-api2