我在访问服务方法时遇到异常。所有GET方法在我的服务上正常工作但是当我运行POST方法时,我得到500内部服务器错误。
https://mservice.domain.com/ServicesRestful.svc/json/addorder
{"用户id":" 30155496"" locationId":" 10""为了":& #34; LOREM"}
服务代码
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "addorder", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
[FaultContract(typeof(ServiceException), Name = "ServiceException")]
Standard AddOrder(string personId, int locationId, string order);
错误消息
传入的消息具有意外的消息格式' Raw'。该 该操作的预期消息格式是' Xml&#39 ;; '的Json&#39 ;.这个可以 是因为尚未配置WebContentTypeMapper 捆绑。有关更多信息,请参阅WebContentTypeMapper的文档 的信息。
答案 0 :(得分:0)
以这种方式更改合同:
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "addorder", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
[FaultContract(typeof(ServiceException), Name = "ServiceException")]
Standard AddOrder(Order order);
您的Order
课程在哪里:
[DataContract]
public class Order
{
[DataMember]
public string personId {get; set;}
[DataMember]
public int locationId {get; set;}
[DataMember]
public string order {get; set;}
}
现在,尝试并运行。确保JSON
格式正确。