curl 学习记录

curl 可以发送各种http请求。是一个在linux下强大的命令。之前大多数情况测试接口,我都是依赖于python脚本,用requests库发送请求。在了解到curl命令后,简单学习记录了下。

在帮助信息中可以查到很多有用的信息。比如-d选项可以加上post请求的数据。

练习了get请求和post请求的两个常用请求。

用python的flask框架简单写了一个web服务,放在自己的虚拟机上。

代码如下:

  • GET 请求:

在python代码中不需要指定请求方式,默认为get请求。一般来说,参数都是以params的形式拼接在url后面,那么在python中获取这个参数的方法为:

request.args.get("参数名")

curl 发送请求时,只需要在url后拼接相应的参数即可:

curl http://centos121:5005/test_get?name=jeet

请求效果如下:

--silent:可以看到,curl会把很多信息都打印出来,如果不需要这些信息,只需要返回结果,可以加--silent参数。重新请求:

  • POST 请求:

在flask中需要指定 methods=['POST'],以此声明请求方式为post。post请求中也可以存在params的参数,和get请求取参传参相同。post还可以提交json结构的参数,在flask中取参方式为:

# 该方法会返回传入的json体,结果为dict字典
request.json

在curl中传参方式为:

curl http://centos121:5005/test_post?name=jeet -H 'Content-Type:application/json' -d '{"data": "post test data"}' --silent

-H:声明请求头,要传json结构的数据,需要将请求头设置为 Content-Type:application/json,若不设置的话,则默认为application/x-www-form-urlencoded

-d:发送post请求的数据,curl会自动加-X POST,不需要再手动加,后面接具体的数据即可。

请求效果:

如果想在post请求体中写中文,目前我没学会如何进行手动转码,可以采取另一种方式,将json体写入一个文件内,然后提交文件内容即可:

curl http://centos121:5005/test_post -H 'Content-Type:application/json' -d @params.json

发布了102 篇原创文章 · 获赞 25 · 访问量 7万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览