zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    324. Wiggle Sort II
    341. Flatten Nested List Iterator
    300. Longest Increasing Subsequence
    72. Edit Distance
    63. Unique Paths II
    221.Maximal Square
    House Robbers. 198 & 213
    [C++] 与比较有关的事情
    218.The Skyline Problem
    41. First Missing Positive
  • 原文地址:https://www.cnblogs.com/91parson/p/10159617.html
Copyright © 2011-2022 走看看