详解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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。