我有这门课:
public class MyClass
{
public MyClass() { Secret = "Don't tell me"; }
public string Name { get; set; }
public int Age { get; set; }
public string Description { get; set; }
private string Secret { get; set; }
}
这个WEB API方法:
// POST api/fixture
public HttpResponseMessage Post(MyClass value)
{
return new HttpResponseMessage(HttpStatusCode.Created);
}
我已经将Web API设置为返回JSON而不是XML,并且我没有对默认配置进行任何其他更改。我试图用火狐的RESTClient扩展来测试这个方法。以下是我的请求:
POST localhost:XXXX/api/fixture
Content-Type: application/json
Accept: application/json
Content-Length: 60
{
value : { "Name":"Cosby","Age":"13","Description":"OK" }
}
但是我得到了这个错误:
{“Message”:“此资源不支持请求实体的媒体类型“text/plain”,“ExceptionMessage”:“没有MediaTypeFormatter可用于从媒体类型为“text/plain”的内容中读取类型为“MyClass”的对象。”,“ExceptionType”:“System.Net.Http.UnsupportedMediaTypeException”,“StackTrace”:“在System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent内容,类型,IEnumerable1格式化程序,IFormatterLogger格式化程序记录器,CancellationToken CancellationToken)\r\n在System.Net.Http.HttpContentExtensions.Readasync(HttpContent内容、类型、IEnumerable
1格式化程序、IFormatterLogger格式化程序记录器、CancellationToken CancellationToken)\r\n在系统中。网状物Http。模型绑定。FormatterParameterBinding。ReadContentAsync(HttpRequestMessage请求,类型类型,IEnumerable`1格式化程序,IFormatterLogger格式化程序记录器,CancellationToken CancellationToken)“}
编辑:
我不明白,因为似乎这个方法甚至没有被调用。如果我调试,我会看到调用了构造函数,然后没有调用其他方法。没有提出任何例外。
我已经讨论这个问题很久了。我发现这个问题通常发生在内容类型设置不正确时,但我的情况似乎不是这样,因为请求甚至没有被处理。
任何想法?
谢谢
您可能需要在HTTP请求头中添加以下内容:
Content-Type: application/json
您将application/json
的内容类型发送到正文中,而不是作为标题。因此,您的POST请求默认为text/plain。RestClient扩展有一个单独的位置来输入标题。
如果您对通过网络发送的内容有任何疑问,请查看浏览器开发人员工具中的“网络”选项卡,或使用诸如Fiddler之类的工具查看网络流量。
在POSTMAN内部,您只需将设置更改为application/json。请参阅下图。
我试图通过XLIFF内容在以下函数的参数,我得到错误: {“message”:“此资源不支持请求实体的媒体类型'application/xml'。”,“exceptionMessage”:“没有MediaTypeFormatter可用于从媒体类型为“application/xml”的内容中读取类型为“xliff”的对象。”,“exceptionType”:“System.Net.Http.Unsu
我在泽西岛有一个Rest服务,我正在使用邮递员实现 我在邮递员中得到以下错误:
我是自动化的一个API的POST调用使用Rest保证和内容类型和ACCEPT头我必须使用"应用程序/vnd.apijson"。但是每次我使用“应用程序/vnd.apijson”,我都会得到415个状态代码。尽管使用邮递员的相同POST呼叫工作得非常好。 以下是我的示例代码: 以下是收到的答复 我曾尝试将Content-Type更改为应用程序/json,正如其他帖子/评论所建议的那样,但这似乎对我的
问题内容: 我正在使用JSON请求调用REST服务,并且它以错误响应。 请求内容类型设置为。 如果我在请求中不包含JSON对象,则效果很好。我正在使用JSON库。 我尝试使用几个不同的库,但这没什么区别。 有人可以帮我解决这个问题吗? 这是我的代码: 的值为: 问题答案: 不确定原因,但是从中 删除行解决了该问题。
我用JSON请求调用REST服务,它用HTTP 415“不支持的媒体类型”错误进行响应。 请求内容类型设置为。 如果我在请求中不包含JSON对象,它就可以正常工作。我正在使用JSON库。 我试着使用了几个不同的库,但没有什么不同。 有人能帮我解决这个问题吗? 这是我的代码: 是: