用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参数的查询 ,你也可以把这些参数放在POST
, PUT
等等。
查询是一个可选部分,用问号(“?”)分隔,其中包含附加标识信息,这些信息本质上不是分层的。 查询string语法不是一般定义的,但它通常被组织成=对的序列,其中的对用分号或符号分隔。
例如:
curl http://server:5050/a/c/getName?param0=foo¶m1=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选项。