我正在使用Service Stack来托管一些REST Web服务。我可以使用soapUI调用Web服务,并且数据被正确地发送和反序列化到我的请求对象。但是,当我尝试使用cURL时,请求对象完全为空。
我查看了服务堆栈代码,我认为问题出在RestHandler.cs的某个地方,当它获取请求参数并创建请求对象时。请求中似乎没有任何可以反序列化的内容。
我的请求对象如下:
[DataContract(Namespace = Namespaces.WsdlServiceTypesNamespace)]
public class Request
{
[DataMember]
public Parameter[] Parameters { get; set; }
[DataMember]
public string Name{ get; set; }
}
我正在使用的cURL是:
curl -i -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "Parameters":[{"Name":"data","Value":""}],"Name":"Test" http://localhost:8084/test
我尝试了相同结果的内容类型和数据的各种排列。任何人都可以建议为什么这不起作用?
答案 0 :(得分:1)
结果是内容类型不正确,应该是text / json,还有charset。此外,逃离json可能有所帮助。
因此,cURL变为:
curl -i -H "Accept: application/json" -H "Content-type: text/json; charset=UTF-8" -X POST -d "{\"Parameters\":[{\"Name\":\"data\",\"Value\":\"test\"}],\"Name\":\"Test\"}" http://localhost:8084/test