0

我对 web api 的东西很陌生:

我收到一个错误

406:不可接受

asp.net web api rest 服务中的错误消息。

在我的休息服务中,我使用媒体格式进行自定义 XML 输出,以获得自定义输出。

我正在Global.asax页面中注册我的格式化媒体。

GlobalConfiguration.Configuration.Formatters.Clear(); 
GlobalConfiguration.Configuration.Formatters.Add(new mynewformat());

我所有的方法都是以类型对象为参数的 post 方法,参数是从正文接受的。

每当我尝试测试服务时...收到406: Not acceptable错误消息。谁能帮帮我……这可能是什么原因……???

我确实注意到这里有几个有趣的点......

  1. 如果我在下面评论,那么我会得到200 (OK)状态代码(这很好。)......但格式不适用于输出。

    GlobalConfiguration.Configuration.Formatters.Clear();
    
  2. 如果我在我的服务方法中删除参数..那么它工作正常..

我要求每个人..请指导我可能是什么原因/解决方法/解决方案/修复..这个问题。

注意:我不想接受来自 URI 的参数,所以我只接受来自 frombody 的参数。

谢谢。

4

1 回答 1

0

实现自定义格式不仅仅是将其添加到配置格式化程序中。首先,必须为客户端的所有请求将媒体类型标头更改为您选择的新自定义类型(如“application/myNewFormat”)。在后端,您必须实现一个可以处理序列化的新MediaTypeFormatter 。这涉及更多的代码。

一个很好的例子在这里,它可以很容易地被剥离为样板代码: http: //www.codeproject.com/Articles/559378/Implementing-Custom-Media-Formatters-in-ASP-NET-We

于 2013-09-30T16:21:55.237 回答