详解Python 重学requests发起请求的基本方式
安装相关模块
pipinstallrequestsrequests-toolbelt
代码实例
importrequests
importjson
fromPILimportImage
fromioimportBytesIO
fromrequests_toolbeltimportMultipartEncoder
'''
使用requests请求返回的response注意事项
response.text获得响应结果的字符串类型
response.content获得响应结果的bytes(二进制数据流类型,可用来处理返回的二进制文件流)如果是图片的话可以使用Image.open(BytesIO(r.content)).show()打开查看
response.status_code获得响应结果的状态码
response.headers获得响应结果的请求头
response.encoding获得响应结果的编码
response.url获得请求的url
response.json()将获得响应结果转换成json.loads(str)后的结果,在python中得到字典类型
'''
defget_request(url,params,headers=None):
'''
发起GET请求
:url请求的地址字符串类型
:params请求的参数字典类型
:headers定义请求头字典类型
'''
returnrequests.get(url=url,params=params,headers=headers)
defpost_www_form_request(url,www_form,headers=None):
'''
发起POST请求发送x-www-form-urlencoded请求体
:url请求的地址字符串类型
:www_formx-www-form-urlencoded请求体字典类型
:headers定义请求头字典类型
'''
returnrequests.post(url=url,data=www_form,headers=headers)
defpost_form_data_request(url,form_data,headers=None):
'''
发起POST请求发送form-data请求体
:url请求的地址字符串类型
:form_dataform-data请求体字典类型
:headers定义请求头字典类型
'''
default_headers={'Content-Type':'multipart/form-data'}
ifheaders:
default_headers.update(headers)
m=MultipartEncoder(fields=form_data)
default_headers['Content-Type']=m.content_type
print(default_headers)
returnrequests.post(url=url,data=m,headers=default_headers)
defpost_json_data_request(url,json_data,headers=None):
'''
发起POST请求发送json请求体
:url请求的地址字符串类型
:json_datajson类型请求体字典类型
:headers定义请求头字典类型
'''
#方式一
#default_headers={'Content-Type':'application/json'}
#ifheaders:
#default_headers.update(headers)
#returnrequests.post(url=url,data=json.dumps(json_data),headers=default_headers)
#方式二
returnrequests.post(url=url,json=json_data,headers=headers)
defpost_files_request(url,files,headers=None):
'''
发起POST请求请求体为文件
:url请求的地址字符串类型
:files文件类型请求体文件类型
:headers定义请求头字典类型
'''
#携带请求头
default_headers={'Authorization':'bearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwiZXhwIjoxMDIxNTk5MjgwMX0.GFs_smaKQ55taYgctbDzw2ooOdKNuy-HqobHXB2nE1o'}
ifheaders:
default_headers.update(headers)
returnrequests.post(url=url,files=files,headers=default_headers)
if__name__=='__main__':
#测试GET请求
#print(get_request('http://127.0.0.1:9000/wechat/good/',{'page':1,'page_size':2}).json())
#print(post_www_form_request('http://127.0.0.1:9000/mobilelogin/',{'mobile':'17316280277','code':'1234'}).json())
#(('mobile','17316280277'),('code','1234'))
#print(post_form_data_request('http://127.0.0.1:9000/mobilelogin/',{'mobile':'17316280277','code':'1234'}).json())
#print(post_json_data_request('http://127.0.0.1:9000/mobilelogin/',{'mobile':'17316280277','code':'1234'}).json())
print(post_files_request('http://127.0.0.1:9000/uploadfile/',{'file':open('img1.png','rb'),'file1':open('1.xls','rb')}).json())
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。