没有问题,应该是你POST的数据格式不正确。你可以通过在服务端返回一个JSON格式的 Order 对象,来观察它的 orderlines 属性是怎么表示成 JSON 的。
"orderlines" : [
{
"quantity" : 2,
"weight_in_kg" : "",
"price" : 55,
"taste" : "",
"dish_ref" : 1025,
"dish_label" : "鸿运当头"
}
],
上面是提交的JSON数据中订单明细的部分.应该没什么问题啊
WCF发布的web service,提交JSON的是IOS的应用程序.不过这个应该没有关系的吧.
仍然不知道问题出在哪儿.谢谢!
@小猪凯:
POST http://xxxxxxx HTTP/1.1
Content-Type: application/json; charset=utf-8
Content-Length: 123
{"name":"sdfsdf","orderlines":[{"price":5,"quantity":5.6,"weight_in_kg":"s"},{"price":5,"quantity":5.6,"weight_in_kg":""}]}
你给的格式没有问题,但是请你检查你的请求头中是否包含 Content-Type: application/json; charset=utf-8,另外,你的数据类型是否匹配,比如 weight_in_kg 是否在服务上被定义为 string 类型。
@Launcher: 你好,我检查了服务器上数据类型,修改了
weight_in_kg的类型为string;
price,quantity设置为double,
/// <summary>
/// 订单行项目信息
/// </summary>
[DataMember]
public order_line[] orderlines { get; set; }
但这样服务器端直接返回HTML的错误,说服务器存在问题.
气死我了
@Launcher: 啊,的确是因为数据类型的原因.谢谢帮助!
应该没有任何的问题啊。