• python文件上传错误“Required request part 'xxx' is not present”


    背景:页面偶现上传文件失败,在研测环境都无法复现。于是想通过脚本来多次请求尝试复现问题。

    查看请求信息:

    开始撸码 (想当然的添加content-type和cookies)

    import os
    import requests
    
    headers = {'Content-Type': 'multipart/form-data',
               'Cookie': 'access_token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiIxNzY4MTEwOTc1NyIsInNjb3BlIjpbIm9wZW5pZCJdLCJleHAiOjE2rpYATtO7g-AHopmAaeRfLuLi5SIsSZ0nl5ksAI_r-moPozyMQJh2vTt3p9Hc2_2tfJ7LVq0GU79XIgwBkPRZckoHgOUj39jO_aVLDd6iizp8fyuVBFLTQ'}
    
    url = 'http://xxx.xxx.xxx/commonApi/kg/openqa/batch/import'
    files = {'file': open(os.path.join(os.path.dirname(__file__), 'aee15f6befd14ed1979018bc03c9985a.xlsx'), 'rb')}
    res = requests.post(url=url, files=files, headers=headers)
    print(res.status_code)
    print(res.json())
    

    运行结果:

    200
    {'retcode': '999999', 'desc': "出现未知异常,错误信息为Required request part 'file' is not present"}
    

    网上各种找资料,都没有对这种错误的解析,直到看到https://www.cnpython.com/qa/518198。。。

    既然添加请求头的时候能想起来吧boundary去掉,为啥就没想起来这玩意加了令牌。。。

    去掉Content-Type

    import os
    import requests
    
    headers = {
        'Cookie': 'access_token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiIxNzY4MTEwOTc1NyIsInNjb3BlIjpbIm9wZW5pZCJdLCJleHAiOjE2MTEwNTExODUsImlhdCI6MTYxMDk2NDc4NSwiYXV0aG9yaXRpZXMiOlsiUk9MRV9BSU1JTkRfQURNSU5JU1RSQVRPUiJdLCJqdGkiOiJhY2FhNzIzYy1jN2Q3LTQ3YmQtYjI0Zi0zNTk3MWUyNDlmMjUiLCJjbGllbnRfaWQiOiJ3ZWJfYXBwIn0.SaYsEi0Z_bdEgARknWSKV2-ZUAxD4eNdLDd6iizp8fyuVBFLTQ'}
    
    url = 'http://xxx.xxx.xxx/commonApi/kg/openqa/batch/import'
    files = {'file': open(os.path.join(os.path.dirname(__file__), 'aee15f6befd14ed1979018bc03c9985a.xlsx'), 'rb')}
    res = requests.post(url=url, files=files, headers=headers)
    print(res.status_code)
    print(res.json())
    

    再次请求

    200
    {'retcode': '000000', 'desc': '成功'}
    ```![](https://img2020.cnblogs.com/blog/1638284/202101/1638284-20210118200650944-470169345.png)
  • 相关阅读:
    02
    01
    Redis、Mongo
    Django
    Django
    Django
    Django
    7.2
    Django
    contenttypes
  • 原文地址:https://www.cnblogs.com/wjlv/p/14294888.html
Copyright © 2020-2023  润新知