POST请求发出与解析-HTTP
上一篇中介绍了用Python模拟POST方式发出请求与解析
https://www.jianshu.com/p/3904b75150c4
本篇介绍如何用命令行发出Post请求,以及Python解析和响应请求。
有两种发出Post请求的方式:
方式一
命令行端
curl http://127.0.0.1:8666/login?access_token=12345678 -d "text=小明"
其中服务地址是http://127.0.0.1:8666/login,“?”后面跟的access_token=12345678是指参数access_token的取值是12345678,“-d”后面跟的是要传递的数据"text=小明"。
对于这个命令,服务端怎么解析呢?其实就是解析两个东西,一个是参数access_token,一个是数据text。参数的access_token的获取方式是request.args.get('access_token'),数据text的获取方式是request.form.get('text')。
Server 端Python代码
Server端获取命令行参数和数据方式二
命令行端
curl http://127.0.0.1:8666/login -H "Content-Type: application/json" -d '{"text":"小明", "access_token":"12345678"}'
可以看到这里有两处改变,一是-H后面增加了请求头"Content-Type: application/json",代表要传递的数据是json格式,二是-d后面跟的要传递的json数据'{"text":"小明", "access_token":"12345678"}'
对于这个命令,服务器端解析-d后面跟的要传递的json数据即可,获取方式是request.get_json()
Server 端Python代码
Server端获取json数据PS:其实这个方法和用Python模拟POST方式发出请求与解析中Server端代码是一样的。因为用Python向服务地址模拟发送json数据和用命令行向服务地址发送json数据,本质是一样的。