我试图通过cURL从命令提示符向远程REST API发送"GET"请求,如下所示:
curl -X GET -H "Content-type: application/json" -H "Accept: application/json" "http://server:5050/a/c/getName/{"param0":"pradeep"}"
Run Code Online (Sandbox Code Playgroud)
但它没有返回任何输出.我试图直接从浏览器ping URL,我能够成功获得响应,我不明白该命令有什么问题.
基本上我想为远程REST服务设置一个"GET"请求,它通过curl给我一个json数据作为响应.任何人都可以指导我,我在做什么错误?我尝试了各种帖子,但他们所有人都在谈论不是关于GET的POST请求.
Har*_*ara 129
这应该工作:
curl -i -H "Accept: application/json" "server:5050/a/c/getName{'param0':'pradeep'}"
Run Code Online (Sandbox Code Playgroud)
用户选项-i而不是x.
Ste*_*oka 32
如果您真的想在正文中提交带有 JSON 的 GET 请求(比如 XHR 请求,并且您知道服务器支持处理 GET 请求的正文),您可以:
curl -X GET \
-H "Content-type: application/json" \
-H "Accept: application/json" \
-d '{"param0":"pradeep"}' \
"http://server:5050/a/c/getName"
Run Code Online (Sandbox Code Playgroud)
大多数现代 Web 服务器都接受这种类型的请求。
Mar*_*ler 17
如果你想在体内发送数据,那么你必须做一个POST或者PUT代替GET.
对我来说,看起来你正试图用uri参数发送查询,这与GET你无关,你也可以把这些参数放在上面POST,PUT等等.
查询是一个可选部分,由问号("?")分隔,其中包含本质上不是分层的附加标识信息.查询字符串语法不是一般定义的,但它通常被组织为一对=对,其中的对由分号或符号分隔.
例如:
curl http://server:5050/a/c/getName?param0=foo¶m1=bar
Run Code Online (Sandbox Code Playgroud)
小智 8
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 -G ...
Run Code Online (Sandbox Code Playgroud)
代替
curl -X GET ...
Run Code Online (Sandbox Code Playgroud)
通常你不需要这个选项。各种 GET、HEAD、POST 和 PUT 请求都通过使用专用命令行选项来调用。
此选项仅更改 HTTP 请求中使用的实际单词,它不会改变curl 的行为方式。因此,例如,如果您想发出正确的 HEAD 请求,使用 -X HEAD 是不够的。您需要使用 -I, --head 选项。
| 归档时间: |
|
| 查看次数: |
390068 次 |
| 最近记录: |