用json参数curlGET请求

我想通过cURL从命令提示符向远程REST API发送“GET”请求,如下所示:

curl -X GET -H "Content-type: application/json" -H "Accept: application/json" "http://server:5050/a/c/getName/{"param0":"pradeep"}" 

但它不返回输出。 我试图直接从浏览器ping URL,我能够得到响应成功,我不明白什么是错误的命令。

基本上我想设置一个“GET”请求到一个远程REST服务,它给了我json数据作为响应通过curl。 任何人都可以指导我做什么错误? 我尝试了各种职位,但他们都谈论POST请求不是关于GET。

这应该工作:

  curl -i -H "Accept: application/json" "server:5050/a/c/getName{"param0":"pradeep"}" 

用户选项-i而不是x。

如果你想在正文中发送你的数据,那么你必须做一个POST或者PUT而不是GET

对我来说,看起来你正在试图发送与URI无关的uri参数的查询 ,你也可以把这些参数放在POSTPUT等等。

查询是一个可选部分,用问号(“?”)分隔,其中包含附加标识信息,这些信息本质上不是分层的。 查询string语法不是一般定义的,但它通常被组织成=对的序列,其中的对用分号或符号分隔。

例如:

 curl http://server:5050/a/c/getName?param0=foo&param1=bar 

GET使用名称值对。

尝试像这样:

curl http://server:5050/a/c/getName/?param1=pradeep

要么

curl http://server:5050/a/c/getName?param1=pradeep

顺便说一句,一个普通的REST应该看起来像这样

curl http://server:5050/a/c/getName/pradeep如果在GET URL中使用JSON,这不是一个标准的方法。

对于用户名和密码保护的服务使用以下内容

 curl -u admin:password -X GET http://172.16.2.125:9200 -d '{"sort":[{"lastUpdateTime":{"order":"desc"}}]}' 

尝试

 curl -G ... 

代替

 curl -X GET ... 

通常你不需要这个选项。 各种各样的GET,HEAD,POST和PUT请求都是通过使用专用的命令行选项来调用的。

这个选项只改变HTTP请求中使用的实际字,它不会改变curl行为的方式。 所以,例如,如果你想做出正确的HEAD请求,使用-X HEAD将是不够的。 您需要使用-I,–head选项。