我正在创建一个WCF Restful服务,我希望通过POST操作保存来自javascript的json对象作为查询字符串。我将json对象作为查询字符串但是无法在wcf restful中访问它,请帮忙。 .........
我的javascript代码
var myRequest = new XMLHttpRequest();
myRequest.onreadystatechange=function(dataString) {
if (myRequest.readyState == 4 && myRequest.status == 200) {
console.log('Sent to server: ' + dataString + '');
window.localStorage.removeItem(dataString);
}
else if (myRequest.readyState == 4 && myRequest.status != 200) {
console.log('Server request could not be completed');
saveDataLocally(dataString);
}
}
var url="http://localhost:58168/RestServiceImpl.svc/json";
myRequest.open("POST",url+"?"+dataString,true);
myRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
myRequest.send(dataString);
alert('Saved to server: ' + dataString + '');
我在javascript中的请求
![将json对象作为查询字符串发送到wcf restful server] [1]
>**RequestURL**:http://localhost:58168/RestServiceImpl.svc/json?"firstName":"shuresh","lastName":"kumar"}
请求标题: 内容类型:应用/ X WWW的窗体-urlencoded 产地:铬扩展:// ddijiilbgbjgciahjmonfahapadmkcfp User-Agent:Mozilla / 5.0(Windows NT 6.1)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 27.0.1453.116 Safari / 537.36
查询字符串参数 { “名字”: “shuresh”, “姓氏”: “库马尔”}:
表单数据 { “名字”: “shuresh”, “姓氏”: “库马尔”}:
WCF Restful服务合同
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "json?dataString={dataString}")]
string JSONData(string dataString);
RestServiceImpl.svc.cs
public string JSONData(string dataString)
{
return "You requested product " + dataString;
}
我无法访问服务契约中的json对象(dataString)。请帮助我如何访问wcf restful上面代码中的查询字符串中附加的json对象。
http://localhost:58168/RestServiceImpl.svc/json?"firstName":"shuresh","lastName":"kumar"}
答案 0 :(得分:0)
你不要把所有东西都推到“一根字符串”下。
试试这个(只是为了展示概念)
public string JSONData(string firstNameArg)
{
//your code here
}
然后
http://localhost:58168/RestServiceImpl.svc/json?"firstNameArg":"shuresh"}
看看会发生什么。
答案 1 :(得分:0)
在POST / PUT上,表单数据不在QueryString中,而是可以在请求的InputStream中找到它。 此外,您的QueryString格式不正确...?param = value& param = value ... 希望它能帮到你