使用curl发送带json或者xml参数请求介绍

curl是一个命令行工具,通过指定的URL来上传或下载数据,并将数据展示出来。curl中的c表示client。

格式

curl http://ip:port/service/name/op  -X POST -H "Content-type:application/json" -d ' json参数 '

参数

参数内容
-H请求头
-d内容
-X请求方式(post后者get)
-v(verbose)显示详细操作信息
-x使用代理

实例

Json参数

curl http://10.80.21.144:8080/alarm/collection/log 
-X POST -H "Content-type:application/json" -H "server-authorization:VAOIY9sGlxkBb+w22d0nrzzp2yojmdhZ8pu+" -d '{"name": "alarm","content": "测试"}'

Xml参数

curl http://transcoding.mixaudio.ifeng.com:9090/method=http -X POST -H "Content-Type: application/xml" -d 'xmldata=<task_info><task_id>53531946</task_id><type>handle_audio</type><mode>1</mode><priority>8</priority><input_file>/mnt/source3/pmop/storage_main/2018/11/15/v53531944-102-998768-104946.mp4</input_file><callbackUrl><![CDATA[http://10.80.21.144:10086/public/receiveParaForm]]></callbackUrl><new_audio_path>/mnt/source2/pmop/test.mp3</new_audio_path><begin_time>15</begin_time><duration>10</duration></task_info>'

或者

echo '<?xml version="1.0" encoding="utf-8"?><data-session-detail-request id="3467898765412" version="1.21"><authentication><username>admin</username><password>123456</password></authentication><data-session-id>12345678</data-session-id></data-session-detail-request>'|curl -X POST -H 'Content-type:application/xml;UTF-8' -d @- http://aaa.com


 

curl是一个实用的、用来与服务器之间传输数据的工具,支持多种协议,设计为无用户交互下完成工作,以下是一些常见的使用方法: ### 发送GET请求 直接使用`curl`加上URL即可发送GET请求,示例如下: ```bash url=http://www.baidu.com curl $url ``` 也可以使用`curl`直接跟上完整的URL: ```bash curl http://example.com ``` ### 发送POST请求 #### 发送普通表单数据 使用`-d`参数传递数据,示例如下: ```bash curl -d 'param1=value1&param2=value2' http://example.com/resource ``` #### 发送JSON数据 使用`-H`指定`Content-Type`为`application/json`,并使用`-d`传递JSON字符串,示例如下: ```bash curl -X POST -H "Content-Type: application/json" -d '{"param1":"value1", "param2":"value2"}' http://example.com/resource ``` 也可以使用另一种示例: ```bash curl -H "Content-Type: application/x-www-form-urlencoded" -X POST -d '{"postdata": "" }' "http://192.168.0.1:8001/test" ``` ### 其他常见用法 #### 使用代理 使用`-x`参数指定代理地址,示例如下: ```bash curl -x 'http://127.0.0.1:8080' http://www.baidu.com ``` #### 用户认证 使用`-u`参数进行用户认证,示例如下: ```bash curl -u username:password http://example.com ``` #### 对内容进行URL编码 使用`--data-urlencode`对内容进行URL编码,示例如下: ```bash curl --data-urlencode 'page_size=50' http://example.com ``` #### 将POST请求转为GET请求 使用`-G`参数把`data`数据当成GET请求参数发送,常与`--data-urlencode`结合使用,示例如下: ```bash curl -G --data-urlencode 'page_size=50' http://example.com ``` #### 写文件(通常用于下载) 使用`-o`参数将响应内容写入文件,示例如下: ```bash curl -o output.txt http://example.com ``` #### 打印更详细的日志 使用`-v`参数打印更详细的日志,示例如下: ```bash curl -v http://example.com ``` #### 关闭一些提示输出 使用`-s`参数关闭一些提示输出,示例如下: ```bash curl -s http://example.com ``` ### 关于返回格式 返回格式默认为`xml`,如果HTTP请求返回500错误,需在请求头`Accept`加上`application/xml`;如需返回JSON格式,把HTTP请求头中的`Accept`改为`application/json;charset=UTF-8`。可设置的`Content-Type`有`text/plain`、`application/json; charset=utf-8`、`application/x-www-form-urlencoded`等 [^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕城南风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值