通用用法
但上图的字段名,类型需要根据不同接口填写,如某服务接口:
因而对应的上传代码如下:
# 输出参数:请求响应报文
import requests
request_url = 'https://XXXXX/file-upload'
head = {
# "Content-Type": "multipart/form-data; boundary=alamofire.boundary.3c7024a080e6a27f", #注意,此处不要写Content-Type
"apiVersion": "v1.0.0",
"appVersion": "v1.0.0",
"OS": "iOS",
"OSVersion": "11.4.1",
"language": "zh",
"did": "NTIzOTIxNDYwMzMyM2NjZjk1OGM5NjBmYzNlNzg2OTYtZTkxNzg1MzYzNjA4NGM0Mjg4Njg3MmFhNzExMDE1YTgwMDAyLXIwWUtuK0MrS1Y2eDBteWs3WnhDYmQ2ZnovTT0=",
"reqSeq": "eb144eed4639d36bb6a7b9aa2a563421",
"timestamp": "1545789471",
"userToken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJiaXpUeXBlIjoiTE9BTiIsInVzZXJSb2xlIjoyLCJleHAiOjE1NTQ2MTYwMjUsInVzZXJJZCI6MzAxMzkyNDUxNTc3Mzk3MjQ4LCJjaGVja0NvZGUiOiJiZTk1MDEwZjczN2Q0YTU2ODkxNTYyMDBlNDhhZDEyZCJ9.97Km63wUC6IaoSYE1Db8fAxYoW5N-ZQkbiw4kETN2cQ"
}
fl = open('test.png','rb')
files = {'files': ('test.png', fl, 'application/octet-stream', {'Expires': '0'})} #字段名files 以及类型和application/octet-stream 和抓取到的接口一致
r2 = requests.post(request_url, headers=head, files=files)
print(requests.Request('POST', request_url, headers=head, files=files).prepare().body.decode('ascii')) #可以打印出来真实请求的 字段名 以及类型等信息,如果和抓取接口不一致,调整
print(r2.text)
您可能感兴趣的文章:python爬虫实现POST request payload形式的请求Python requests.post方法中data与json参数区别详解浅谈python requests 的put, post 请求参数的问题python requests.post带head和body的实例python requests post多层字典的方法python利用requests库模拟post请求时json的使用教程Python3 利用requests 库进行post携带账号密码请求数据的方法Python requests发送post请求的一些疑点Python使用requests发送POST请求实例代码Python 使用requests模块发送GET和POST请求的实现代码