我正在尝试以 JSON 格式从 WCF Web 服务(用 c# 编写)发出请求并接收响应。这是端点的配置:
<service behaviorConfiguration="UserServiceBehavior" name="UserService">
<endpoint address="JSON" binding="webHttpBinding" contract="IUserService"
behaviorConfiguration="JSONEndpointBehavior" bindingConfiguration="" name="RESTEP">
</endpoint>
<endpoint address="" binding="basicHttpBinding" contract="IUserService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
...
<endpointBehaviors>
<behavior name="JSONEndpointBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
方法上的注释是这样的:
[WebInvoke(Method = "GET", UriTemplate = "myUriTemplate", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
对于返回 CLR 类型的方法,它的效果很好:响应是 JSON 格式(我想也是请求)。对于返回非 CLR 类型的方法(在我的情况下是代理客户端),如果我尝试发出请求并接收 JSON 中的响应,服务器会给我带来 404 错误,但如果我切断它:
RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json
服务器回复一个包含我正在搜索的数据的 XML 文档。这可能是与客户端代理有关的问题吗?如何生成支持 JSON 序列化和反序列化的 e 客户端代理?如果我打开帮助页面,我实际上可以在方法列表中看到该方法,但我无法从 URL 中触发它。