python request file upload_python request post上传文件额外注意点

通用用法

1393116-20190308142738710-1338109573.png

但上图的字段名,类型需要根据不同接口填写,如某服务接口:

1393116-20190308143029416-1415972095.png

因而对应的上传代码如下:

# 输出参数:请求响应报文

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
优化一下下面的代码def FileUploads_modelform(request): """ 批量上文件 方法三:采用modelform上,超级简单,只需要实例化表单的时候 接收一下表单里边字符串数据和文件,然后利用表单的save()方法保存一下数据即可 :param request: :return: """ # 判断提交方式GET 或POST if request.method == 'POST': File_ModelForm = FileUpload_ModelForm(request.POST, request.FILES) # 实例化FileUploadForm表单,注意获取数据的方式 if File_ModelForm.is_valid(): # file = File_ModelForm.cleaned_data['file'] # 对于文件,自动保存 # 字段+上路径自动保存到数据库 # file_form = File_ModelForm.save() # 保存表单到数据库 # 多属性保存 Upload_File = File_ModelForm.save(commit=False) # Upload_File.file_url = Upload_File.file_url.temporary_file_path() # 文件路径 # 调用get_optimized_file_type函数获取优化文件类型 # optimized_file_type = get_optimized_file_type(Upload_File.file_url) Upload_File.file_name = Upload_File.file_url.name # 文件名 Upload_File.file_size = Upload_File.file_url.size # 文件大小 Upload_File.file_update_author = request.user.realname # 获取文件类型 # Get the file content type uploaded_file_type, encoding = mimetypes.guess_type(Upload_File.file_url.path) Upload_File.file_type = uploaded_file_type # Upload_File.file_type = Upload_File.file_url.content_type # optimized_file_type = get_optimized_file_type(file_url) Upload_File.save() # 其他操作,例如返回成功页面或其他处理 # return render(request, 'zadmin/pages/File_Uploads.html', {'file_form': file_form}) return HttpResponse("文件成功!") else: file_form = FileUpload_ModelForm() return render(request, 'zadmin/pages/File_Uploads.html', {'file_form': file_form})
07-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值