我正在尝试将 json 字符串发布到 .net wcf 服务。
这是操作的定义:
[WebInvoke(Method = "POST", UriTemplate = "test/")]
[OperationContract]
[Description("Test")]
void Test(string input);
我使用 fiddler 发送我的测试。这是 fiddle 手信息:
POST http://localhost/test.svc/test/ HTTP/1.1
Content-Type: application/json
Host: localhost
Content-Length: 4
test
我总是收到此 http 400 错误:
反序列化 System.String 类型的对象时出错。预期 token 为“true”,但发现为“test”。
我做错了什么?我确信这可能是非常明显的事情,但我从今天早上就开始这样做......
问题已被分解为最简单的表达方式。在现实世界中,我们想要发布一个实际上是 JSON 的字符串。但我们不希望 .net 处理反序列化,我们想在服务中自己完成。
最佳答案
请求内容
test
不是有效的 JSON。您需要发送引号内的字符串:
POST http://localhost/test.svc/test/ HTTP/1.1
Content-Type: application/json
Host: localhost
Content-Length: 6
"test"
关于.net - 将字符串参数发送到 WCF 服务会导致反序列化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10984752/