我们已经创建了一个WCF Web服务。我们创建了两个这样的操作合同:
public interface IRestServiceImpl
{
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "getID/{id}")]
File getID(string id);
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Xml,
RequestFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "auth")]
ResponseData Auth(RequestData rData); }
正如您所看到的,我有一个Get and Post方法。这工作正常,但如果我想设置我的GET服务的响应格式,我必须使用XMLSERIALIZERFORMAT标记。如果我添加这个然后尝试点击POST服务,我得到错误:400“错误的请求错误”。我应该如何在同一服务中设置我的GET方法的响应。
我尝试在项目中添加另一项服务'Service2.svc',我只保留GET方法,而'Service1.svc'只有POST服务。在Service2的界面中,我使用了XMLSERIALIZERFORMAT,但仍然无法点击POST服务。我想我必须使用DATACONTRACTSERIALIZER。但我不知道如何设置属性。
任何人都可以帮我解决这个问题吗? 谢谢 查兰
答案 0 :(得分:0)
如果您希望GET以XML格式发送响应,那么GET方法的下面设置就足够了。
ResponseFormat = WebMessageFormat.Xml
您不需要使用XmlSerializerFormat。只是尝试浏览IE中的服务,您应该看到GET方法的响应是XML格式。
关于在POST上获取错误请求,请尝试查看请求正文如何发送到您的方法。要查看您的请求正文,请尝试使用Fiddler等工具来检查您的请求和响应。要调试错误请求的原因,请尝试在服务上启用跟踪。