以JSON格式卷曲POST请求

时间:2014-08-03 13:30:01

标签: ruby-on-rails json http post curl

我希望使用Mac终端中的Curl以JSON格式向特定网址发送HTTP POST请求。

  1. 如何指定HTTP动词POST? -d和-X有什么区别?
  2. 如何指定我以JSON格式发送数据?
  3. 有关如何测试请求本身的任何建议?我想测试并确切地看到在我执行“直播”之前发送的JSON数据的确切内容。请求。我可以在localhost上运行Rails服务器并将我的POST请求发送到localhost吗?我怎样才能看到JSON数据?
  4. 欢迎任何例子。 谢谢!

2 个答案:

答案 0 :(得分:2)

1)如果您使用-d选项上传数据,请自动使用POST进行卷曲。如果要指定方法(-XPUT等)而不是让curl为您选择它,则使用DELETE选项。

echo "how are you" | curl -vvv -d@- http://localhost:8000
* About to connect() to localhost port 8000 (#0)
*   Trying 127.0.0.1...
* connected
* Connected to localhost (127.0.0.1) port 8000 (#0)
> POST / HTTP/1.1
> User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.5
> Host: localhost:8000
> Accept: */*
> Content-Length: 11
> Content-Type: application/x-www-form-urlencoded
> 
* upload completely sent off: 11 out of 11 bytes
< HTTP/1.1 200 OK
< Date: Sun, 03 Aug 2014 13:46:44 GMT
< Connection: keep-alive
< Transfer-Encoding: chunked

2)您可以使用json标题指定以Content-type格式发送数据。可以使用-H选项以卷曲方式添加此标头。

3)是的,您可以设置一个网络服务器(使用python, nodejs, rails等),一旦收到它就可以打印出http body

答案 1 :(得分:1)

  1. $ curl -d "param1=value1&param2=value2" http://example.com/posts
  2. $ curl -i -H "Accept: application/json" -H "Content-Type: application/json" http://example.com/posts
  3. 我更喜欢使用https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo