我正在编写一个有很多方法的Web服务。它们都设置类似于以下内容:
[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
。现在,我知道我可以这样做:
<endpointBehaviors>
<behavior name="webHttpBehavior">
<webHttp defaultBodyStyle="Bare" defaultOutgoingResponseFormat="Json" />
</behavior>
</endpointBehaviors>
但似乎没有RequestFormat的属性。如何将默认RequestFormat
设置为JSON?
答案 0 :(得分:5)
请求类型为automatically interpreted by WCF,您无需为服务操作指定默认RequestFormat
。
如果您尝试强制使用支持的请求格式,请参阅this related SO post on enforcing request content types。
注意:为RequestFormat
操作分配WebGet
没有意义。根据定义,WebGet
不能包含JSON格式存在的Body
。这里有一个更好的例子是WebInvoke
。
答案 1 :(得分:1)
在 web.config文件
中的 webHttp 元素中将automaticFormatSelectionEnabled
属性设置为 true
<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