Linux命令发送Http GET/POST请求

本文详细介绍了在Linux环境下如何正确地使用curl命令发送带有多个参数的GET请求,解决了参数被截断的问题,并对比了curl与wget命令的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近碰到了linux 模拟发送get请求调取接口的操作,当参数多于一个时,会出现只能接收到第一个参数,接收不到后面参数的情况,怀疑是参数连接符&的识别问题,就查阅了些资料,发现确实如此,下面内容是参考的一篇文章,感觉不错,在这做个笔记,以供分享。

Linux命令发送Http GET/POST请求

Get请求

1、使用wget命令:
wget  "http://www.baidu.com"

2、curl命令模拟Get请求:
curl "http://www.baidu.com"  如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地
curl -i "http://www.baidu.com"  显示全部信息
curl -I "http://www.baidu.com"  只显示头部信息
curl -v "http://www.baidu.com"   显示get请求全过程解析

curl命令模拟Get请求携带参数(linux):
curl -v http://127.0.0.1:80/xcloud/test?version=1&client_version=1.1.0&seq=1001&host=aaa.com

上述命令在linux系统,get请求携带的参数只到version=1,”&”符号在linux系统中为后台运行的操作符,此处需要使用反斜杠”\”转义,即:

curl -v http://127.0.0.1:80/xcloud/test?version=1\&client_version=1.1.0\&seq=1001\&host=aaa.com
或者
curl -v "http://127.0.0.1:80/xcloud/test?version=1&client_version=1.1.0&seq=1001&host=aaa.com"


Post请求

1、使用wget命令
wget –post-data 'username=user1&password=123' http://www.baidu.com

2、使用curl命令,通过-d参数,把访问参数放在里面,如果没有参数,则不需要-d,
curl -d "username=user1&password=123" "www.test.com/login"

3、发送格式化json请求
curl -i -k  -H "Content-type: application/json" -X POST -d '{"version":"6.6.0", "from":"mu", "product_version":"1.1.1.0"}' https://10.10.10.10:80/test

curl和wget区别
curl模拟的访问请求一般直接在控制台显示,而wget则把结果保存为一个文件。如果结果内容比较少,需要直接看到结果可以考虑使用curl进行模拟请求,如果返回结果比较多,则可考虑wget进行模拟请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值