python代码,如何利用requests模块发出get或者post请求?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
在上一篇文章里面,苏南大叔使用flask
创建了一个api
服务器,这个服务器可以响应get
/post
请求。那么,如何利用python
获取这些json
响应值呢?
大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述python
的requests
模块的基本使用。测试环境:win10
,python@3.6.8
。
基本描述
本文描述的是使用requests
模块,在python
中,并不是仅仅只有requests
模块,可以实现这个需求,还有很多其它的类似的模块。headers
信息,并不是必须的。是出于测试目的而写的。
本文中请求的接口地址,是由flask
模块提供的,【配套的服务器端代码】,可以参考下面的链接:
基础测试代码如下:
import requests
import json
_headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
'Cookie': 'JSESSIONID=C87094F7F00867BA60ADBCE0473720B0'
}
get请求
这里的代码,headers
信息并不是必须的。但是如果服务器端做了限制的话,就可以修改headers
信息。
测试代码如下:
_url = "http://127.0.0.1:8888/_get"
res = requests.get(url=_url, headers=_headers, params={"id": 1})
json_obj = json.loads(res.text)
print(json_obj)
返回值为:
{'msg': 'get用户id为1', 'header': 'JSESSIONID=C87094F7F00867BA60ADBCE0473720B0'}
post请求
这里的代码,headers
信息并不是必须的。但是如果服务器端做了限制的话,就可以修改headers
信息。
测试代码如下:
_url = "http://127.0.0.1:8888/_post"
res = requests.post(url=_url, headers=_headers, data={"id": 2})
json_obj = json.loads(res.text)
print(json_obj)
返回值为:
{'msg': 'post用户id为2', 'header': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
保存为文件
method | 方法 | 设置参数方式 |
---|---|---|
GET | requests.get() | params={} |
POST | requests.post() | data={} |
一般来说,网络文件使用get
请求来获得,当然也可以添加headers
信息。测试代码如下:
_url = "https://newsn.net/usr/themes/panda/assets/img/logo_multi.png"
res = requests.get(_url, headers=_headers)
with open('abc.png', 'wb') as f:
f.write(res.content)
相关文章
本文配套的服务器端代码,来自于这里:
对于的响应返回的文本,可以使用json.loads()
继续处理,可以参考下面的链接:
综述
对于在python
中,发出get
或者post
请求。可以利用的模块有很多个,本文中的requests
模块,只是其中的一个模块。更多python
相关经验文章,请点击:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。