码迷,mamicode.com
首页 > 编程语言 > 详细

python发送post请求上传文件,无法解析上传的文件

时间:2018-12-22 11:42:57      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:图片   data   xxxxx   post   ken   print   urlencode   cat   json   

前言

近日,在做接口测试时遇到一个奇葩的问题。

使用post请求直接通过接口上传文件,无法识别文件。

遇到的问题

以下是抓包得到的信息:

技术分享图片

以上请求是通过Postman直接发送请求的。

在这里可以看到消息头里包含:Access-Token和Content-Type

因此在在使用python直接调用此接口时,传入的Headers也是包含这两个值的:

def send_app_logo(token, appid):
    url = "XXXXXXXXX"
    headers = {
        "Access-Token": token,
        "Content-Type": "application/x-www-form-urlencoded",
    }
    data = {"logo": (logo1024x1024.png,open(/XXXXXX/XXXX/1024x1024.png,rb),image/png)}
    res = requests.post(url=url,headers=headers,files=data)
    print(url)
    print(res.text)
    result_json = json.loads(res.text)
    code = result_json["code"]
    message = result_json["message"]
    return code, message

此时,从抓包工具中看到发送的请求结果是失败的,无法解析文件:

技术分享图片

解决办法

后面直接把headers里面的Content-Type去掉,完美解决此问题:

def send_app_logo(token, appid):
    headers = {
        "Access-Token": token,
    }
    url = "XXXXXXXXXXXX"
    data = {"logo": (logo1024x1024.png,open(/XXXXXX/XXXXX/1024x1024.png,rb),image/png)}
    res = requests.post(url=url,headers=headers,files=data)
    print(url)
    print(res.text)
    result_json = json.loads(res.text)
    code = result_json["code"]
    message = result_json["message"]
    return code, message

技术分享图片

 

python发送post请求上传文件,无法解析上传的文件

标签:图片   data   xxxxx   post   ken   print   urlencode   cat   json   

原文地址:https://www.cnblogs.com/91parson/p/10159617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!