首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置WCF ServiceContract的默认RequestFormat?

如何设置WCF ServiceContract的默认RequestFormat?
EN

Stack Overflow用户
提问于 2012-08-03 05:46:21
回答 2查看 8.7K关注 0票数 8

我正在编写一个有很多方法的web服务。它们的设置都类似于以下内容:

代码语言:javascript
复制
[OperationContract]
    [WebInvoke(
        BodyStyle = WebMessageBodyStyle.Bare,
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json,
        UriTemplate = "x/y/z")]
    void someMethod(int x, int y, int z);

我想要做的就是在web.config文件中设置默认的BodyStyle / RequestFormat / ResponseFormat。现在,我知道我能做到:

代码语言:javascript
复制
  <endpointBehaviors>
    <behavior name="webHttpBehavior">
      <webHttp defaultBodyStyle="Bare" defaultOutgoingResponseFormat="Json" />
    </behavior>
  </endpointBehaviors>

但是似乎没有用于RequestFormat的属性。如何将默认RequestFormat设置为JSON?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-03 21:19:43

请求类型为automatically interpreted by WCF,您不需要为您的服务操作指定默认RequestFormat

如果您尝试强制使用受支持的请求格式,请参阅this related SO post on enforcing request content types

注意:WebGet操作分配RequestFormat是没有意义的。根据定义,WebGet不能包含JSON格式所在的Body。这里一个更好的例子是WebInvoke

票数 5
EN

Stack Overflow用户

发布于 2015-07-17 17:22:06

web.config文件的webHttp元素中将automaticFormatSelectionEnabled属性设置为true

代码语言:javascript
复制
<behaviors>
   <endpointBehaviors>
      <behavior>
         <webHttp automaticFormatSelectionEnabled="true" />
      </behavior>
   </endpointBehaviors>
</behaviors>

例如:可以在接收端设置Accept:application/json,得到JSON结果。

邮递员屏幕

====================================================================

https://msdn.microsoft.com/en-us/library/ee476510(v=vs.110).aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11786281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档