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

标签 .net json wcf rest

我正在尝试将 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/

相关文章:

wcf - 以编程方式添加 IOperationBehavior 的正确位置在哪里

c# - Entity Framework Brainmush Kerfuffle 壮观

c# - W3C (IIS) 日志记录不记录我的 WCF 服务的 ClaimsIdentity 用户名

c# - EF 4.1 : Removing child object from collection does not delete it - why?

c# - C# 的标准库是否有简单的方法来检查一个数字是否是另一个数字的幂?

javascript - 日期出来了,但不是以预期的方式

javascript - 将 HTML 表转换为 JSON 以传递给 AJAX 调用以下载为 CSV

c# - Microsoft Graph API 和 Azure AD SSO 的问题

.net - 在 WebException 之后避免 ProtocolViolationException

c# - 使用空格从 JSON 字符串反序列化枚举