将字符串参数发布到WCF服务会导致反序列化错误

时间:2012-06-11 17:26:16

标签: .net json wcf rest

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

以下是操作的定义:

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

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

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

test

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

反序列化System.String类型的对象时出错。令牌'true'是预期的,但发现'test'。

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

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

1 个答案:

答案 0 :(得分:7)

请求内容

test

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

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

"test"