python上传gz文件请求

前言:

最近在测试一个文件上传的接口功能,初始设计如下:

# coding=utf8

import requests
from uuid import uuid4
import os
import sys
import urllib
from requests_toolbelt import MultipartEncoder



url="https://192.168.26.24/system.m?a=rpc-data-import"
cookie = {"WAFFSSID":"v2flm3bj8ait2ef2cescrmgl93"}
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0'}

file_name = "F:/waf/webApi/file/waf_alarms_export.gz"
# 获取文件后缀名
suffix = file_name.split(".")[1]
# 获取文件名称
name = os.path.basename(file_name)
print(name)
# 获取boundary
boundary_vale = uuid4().hex

boundary = "-----------------------------{0}".format(boundary_vale)
file_tup = (name, open(file_name, 'rb'), 'application/zip')
m = MultipartEncoder(
            fields={'name': name, 'zipfile': file_tup}
        )

header["Content-Type"] = m.content_type
requests.packages.urllib3.disable_warnings()
response = requests.post(url=url,headers=header,cookies=cookie,data=m,verify=False)

print(response.text)

with open("index.html","w") as f:
    f.write(response.text)

运行该脚本,通过filder抓包内容如下:

 

 而正确的结果应该是:

 代码改正如下:

 在此运行成功上传文件请求。

原文地址:https://www.cnblogs.com/gufengchen/p/13957227.html