2

我正在尝试将 json 字符串发布到 .net wcf 服务。

这是操作的定义:

[WebInvoke(Method = "POST", UriTemplate = "test/")]
[OperationContract]
[Description("Test")]
void Test(string input);

我使用提琴手发送我的测试。这是提琴手信息:

POST http://localhost/test.svc/test/ HTTP/1.1
Content-Type: application/json
Host: localhost
Content-Length: 4

test

我总是收到这个 http 400 错误:

反序列化 System.String 类型的对象时出错。令牌“真”是预期的,但发现是“测试”。

我究竟做错了什么?我敢肯定这可能是很明显的事情,但我从今天早上就开始了......

问题已被分解为最简单的表达方式。在现实世界中,我们想要发布一个实际上是 JSON 的字符串。但是我们不希望 .net 处理反序列化,我们希望自己在服务中自己完成。

4

1 回答 1

7

请求内容

test

不是有效的 JSON。您需要在引号内发送字符串:

POST http://localhost/test.svc/test/ HTTP/1.1
Content-Type: application/json
Host: localhost
Content-Length: 6

"test"
于 2012-06-11T19:25:08.180 回答