【发布时间】:2016-10-12 19:15:40
【问题描述】:
我很难弄清楚如何设置我的 Web 服务来消化 json 数据变量。 我想获取在 POST 请求中发送的数据并将其分配给类。
我的函数(见下文)类始终为空 OrderReprint 所以我错过了一大步。任何帮助都会很棒。
public Boolean Test(OrderReprint oreprints)
{
Debug.WriteLine(OrderReprints.seq1);
Debug.WriteLine(OrderReprints.client);
Debug.WriteLine(OrderReprints.Filename);
Debug.WriteLine(OrderReprints.formcode);
Debug.WriteLine(OrderReprints.jobnum);
Debug.WriteLine(OrderReprints.userid);
Debug.WriteLine(OrderReprints.seq1);
return true;
}
我的界面是这样的
[OperationContract]
[WebInvoke(Method = "POST",
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "Test")]
Boolean Test(OrderReprint oreprints);
我的数据契约类如下所示
[DataContract]
public class OrderReprint
{
[DataMember]
public string Filename;
[DataMember]
public string seq1;
[DataMember]
public string jobnum;
[DataMember]
public string formcode;
[DataMember]
public string userid;
[DataMember]
public string client;
}
我的调用 Ajax 调用如下所示:
$.ajax({
beforeSend: function (xhrObj) {
xhrObj.setRequestHeader("Content-Type", "application/json");
xhrObj.setRequestHeader("Accept", "application/json");
},
type: "POST",
url: URL,
dataType: "text",
data: JSON.stringify(params),
}).then(function (data) {
if (data.results) {
/* (done something here*/
}
}).fail(function (e) {
errorAlert('Process Job', 'Error retriving job informaiton!');
});
【问题讨论】:
-
试试这个:
data: { oreprints: JSON.stringify(params) }, -
您也可以发布示例 JSON 吗?
-
你可以从界面发布DataContract代码吗?
-
@Pawel: 对方法的调用不起作用,甚至不再进行
-
@Stinky : {"Filename":"NEW73907","seq1":"1","jobnum":"3081969","formcode":"MML1","userid":1, "client":"MAILMERGE"}
标签: c# json web-services