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


    前言

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

    使用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

  • 相关阅读:
    gitio博客搭建,hexo + NeXT
    [MIsc]JD笔试编程题
    [MATH]Big Integer +
    【Math】GCD XOR 证明
    【Math】最近点对
    【SRM】600#div2 B 枚举
    【Game】组合游戏
    【Game】找出游戏必胜态
    【DP】树形DP 记忆化搜索
    141. Linked List Cycle
  • 原文地址:https://www.cnblogs.com/91parson/p/10159617.html
Copyright © 2020-2023  润新知