使用python对JavaScript中的FormData对象进行改写(Python使用HTTP上传二进制文件)

背景

尝试使用python通过HTTP协议进行文件上传。改写对象是使用JavaScript编写的web页面。
现在主要对formData的内容进行分析

formData内容

var formData = new FormData
formData.append('image-info',JSON.stringify({
	'Update-Session': da605cb3bb354e5fa0dde7675f1315d3,
	'Update-Packet': 1,
}));
formData.append('image', fileData);

formData的分析

formData中包含以下内容
1,一个有关“image-info”的配置字典
2,待发送的二进制文件“image”

python改写

主要用到三个模块1、requests 2、requests_toolbelt 3、json

import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder

fields = {
            "image-info":json.dumps({
            'Update-Session': da605cb3bb354e5fa0dde7675f1315d3,
			'Update-Packet': 1
            }),
            "image": fileData
            }
     #MultipartEncoder没有办法encode字典对象,所以需要使用json.dunps进行json化
     #fileData为二进制文件
mutiplepartData = MultipartEncoder(fields=fields)#用来规范化二进制的传输格式


#必须将HTTP的消息头中“Content-Type”设置为mutiplepartData.content_type
headers = {
            "Content-Type": mutiplepartData.content_type,
        }


#使用requests模块将内容发送至目标地址
ret = requests.post('http://169.254.1.100:8080/api/UpdatePacket',headers=headers,data=mutiplepartData)

print(ret.text)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值