我正在使用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;
通过发送参数stringcontent显然可以调用服务。 我不被允许改变服务被调用的方式。
我可以自行更改服务。
POST方法无法以字符串格式接受。
在POST请求中我可以使用哪些参数可以接受stringcontent ??
目前它正在给我错误:
回复:UnsupportedMediaType
{“Message”:“此资源不支持请求实体的媒体类型'text / plain'。”,“ExceptionMessage”:“没有MediaTypeFormatter可用于从媒体内容中读取'String'类型的对象输入'text / plain'。“,”ExceptionType“:”System.Net.Http.UnsupportedMediaTypeException“,”StackTrace“:”at System.Net.Http.HttpContentExtensions.ReadAsAsync [T](HttpContent content,Type type,IEnumerable { {1}} 1格式化程序,IFormatterLogger formatterLogger,CancellationToken cancellationToken)“}
答案 0 :(得分:1)
您应该允许JsonMediaTypeFormatter
使用Content-Type: text/plain
解析请求。因此,在启动时,您需要的应用程序(在Startup.cs
或WebApiConfig.cs
文件中) -
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/plain"));
config是HttpConfiguration
对象。
答案 1 :(得分:0)
System.AggregateException:发生一个或多个错误。 ---> System.Net.Http.UnsupportedMediaTypeException:否MediaTypeFormatter 可用于从内容中读取类型为“字符串”的对象 媒体类型为“文本/纯文本”。
在进行以返回类型为字符串的put
调用时,我遇到了错误,
我使用putasync
作为返回字符串作为Task字符串。
问题已解决,这也将为您服务