【问题标题】:Formulate POST request in curl在 curl 中制定 POST 请求
【发布时间】:2012-11-19 08:06:40
【问题描述】:

我正在使用 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

【问题讨论】:

  • 不清楚这个问题与curl有何关系。你能进一步扩展吗?
  • 您是否以想要反序列化的 json 格式发送它
  • 是的,我发送的是 json 格式。我已经有一个类用户(来自数据库)
  • 为什么在 C# 中使用 curl?您意识到 .NET 中内置了多种方法来满足这一需求,对吗?
  • 因为 curl 是手动测试这类服务的好方法,无需编写 C# 客户端类。

标签: c# rest post curl


【解决方案1】:

因为您在方法签名中将参数命名为 us,所以您的 JSON 必须是:

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

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

【讨论】:

  • 我在 curl 中遇到错误:(globbing) pos(8) 不支持嵌套大括号
  • -d ' {(大括号前)有一个空格,请尝试删除它(以防万一)
  • 以及您尝试访问的 UriTemplate 和 URL 在我看来很可疑;对于这种情况,你有什么特殊的路由规则吗?
  • 所以你不应该使用 Rails 风格的路线发帖到 localhost:2342/MyService/users 而不是 :3000 吗?
猜你喜欢
  • 1970-01-01
  • 2015-05-13
  • 1970-01-01
  • 2019-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多