使用curl编写POST请求

4

我使用curl向Web服务http://localhost:2325/Service发送POST请求。

如何将POST请求的正文反序列化为一个变量,以便我可以在我的POST方法内访问它?

有人能给个例子吗?

这是我的方法:

[WebInvoke(RequestFormat = WebMessageFormat.Json, UriTemplate = "/user", Method = "POST")] public void Create(User us)

用户类包含user_iduser_name

请问有人可以帮忙吗?我需要一个如何在curl中制定POST请求的示例。

我已经尝试过这个,但它不起作用:

curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"user":{"user_name":"Name1","user:id":"11"}}' http://localhost:3000/api/1/users


1
不清楚这个问题与 curl 有什么关系。你能进一步展开吗? - Cameron
你是想要以 JSON 格式发送并反序列化吗? - COLD TOLD
是的,我正在发送JSON格式。我已经有一个用户类(来自数据库)。 - user1867256
你为什么要在C#中使用curl?你知道.NET内置了几种方法来满足这个需求,对吗? - M.Babcock
因为curl是一种很好的方式来手动测试这些服务,而不需要编写C#客户端类。 - cfeduke
1个回答

1

因为您在方法签名中将参数命名为us,所以您的JSON需要如下:

{"us":{"user_name":"Name1","user:id":"11"}}

或者在方法签名中将您的参数“user”重命名。


我在curl中遇到错误:(globbing) nested braces not supported at pos(8)。 - user1867256
在“-d ' {”(大括号之前)有一个空格,请尝试删除它(以防万一)。 - cfeduke
你正在尝试访问的UriTemplate和URL似乎有问题,你是否针对这种情况有特殊的路由规则? - cfeduke
所以你应该使用类似Rails的路由,将内容发布到localhost:2342/MyService/users而不是使用:3000吗? - cfeduke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接