如何从命令行使用JSON有效负载进行HTTP请求/调用?

Roa*_*alt 36 linux command-line json web-crawler

从命令行执行JSON调用的最简单方法是什么?我有一个网站,它执行JSON调用以检索其他数据.

Google Chrome中显示的" 请求有效负载"如下所示:

{"version": "1.1", "method":"progr","id":2,"params":{"call":...} }
Run Code Online (Sandbox Code Playgroud)

它是关于从(最好)linux命令行进行调用并检索JSON内容,而不是解析传入的JSON数据.

Piu*_*der 47

你也可以使用wget:

wget -O- --post-data='{"some data to post..."}' \
  --header='Content-Type:application/json' \
  'http://www.example.com:9000/json'
Run Code Online (Sandbox Code Playgroud)

  • 什么是“-O-”?这是烤肉串吗?) (8认同)
  • 谢谢。我的观点是,这个论点看起来很神秘,我建议将此解释添加到答案中;) (2认同)

nos*_*nos 41

使用curl,假设数据是POST,类似于

curl -X POST http://example.com/some/path -d '{"version": "1.1", "method":"progr","id":2,"params":{"call":...} }'
Run Code Online (Sandbox Code Playgroud)

如果您只是使用GET检索数据,并且不需要发送任何条形URL参数,那么您只需运行 curl http://example.com/some/path

  • 您可能需要`-H"Content-Type:application/json"` (13认同)

Ran*_*nga 10

你也可以使用wgetwith post-file,我发现它很有用。

wget --post-file=[file] --header=Content-Type:application/json [URL]
Run Code Online (Sandbox Code Playgroud)

您可以将内容保留在文件中,内容将作为post数据发送。


小智 5

curl --request POST \
--url http://localhost:8099/someservice/services/boo \
--header 'authorization: Basic dkfhsdlepwmdseA==' \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--data '{"value": "24.127.1212.123"}'
Run Code Online (Sandbox Code Playgroud)