【问题标题】:Post string parameter to WCF service leads to a deserialization error将字符串参数发布到 WCF 服务会导致反序列化错误
【发布时间】:2012-06-11 17:26:15
【问题描述】:

我正在尝试将 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 处理反序列化,我们希望自己在服务中自行完成。

【问题讨论】:

    标签: .net json wcf rest


    【解决方案1】:

    请求内容

    test
    

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

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

    【讨论】:

      猜你喜欢
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-18
      • 2011-01-08
      • 1970-01-01
      相关资源
      最近更新 更多