【问题标题】:convert curl to python requests (pisignage API)将 curl 转换为 python 请求(pisignage API)
【发布时间】:2020-05-29 11:47:35
【问题描述】:

我正在尝试将 pisignage 的卷曲转换为 python 请求。卷曲是,

curl -X POST "https://swagger.piathome.com/api/files" -H "接受: 应用程序/json" -H "x-access-token: login_session_token" -H "Content-Type: multipart/form-data" -F "上传 文件=@test.jpg;type=image/jpeg"

我的代码是,

import requests

files = {'Upload file': open('test.jpg', 'rb'), 'type': 'image/jpeg'}
headers = {'Content-type': 'multipart/form-data', 'accept': 'application/json', 'x-access-token': 'login_session_token'}

file_response = requests.post(
    'https://swagger.piathome.com/api/files',
    files=files,
    headers=headers
)
print(file_response)

返回 404。我试过 uncurl,代码是:

import uncurl

u = uncurl.parse('curl -X POST "https://swagger.piathome.com/api/files" -H "accept: application/json" -H "x-access-token: login_session_token" -H "Content-Type: multipart/form-data" -F "Upload file=test.jpg;type=image/jpeg"')

print(u)

输出是,

错误:无法识别的参数:-F 上传文件=test.jpg;type=image/jpeg

【问题讨论】:

    标签: python-3.x curl python-requests


    【解决方案1】:

    经过一天的搜索,发现 swagger 文档不正确。

    使用

    files = {
        'assets': (open('test.jpg', 'rb'))
    }
    

    【讨论】:

    • 这太有趣了。我无法解决它,所以不得不通过 python 从 cmd 使用 curl。该解决方案并不优雅但有效。我将接受这个答案,如果有人觉得这个答案有用,可以点赞。谢谢!!!
    【解决方案2】:

    试试这个

      import requests
    
        headers = {
            'accept': 'application/json',
            'x-access-token': 'login_session_token',
            'Content-Type': 'multipart/form-data',
        }
    
        files = {
            'Upload file': (None, 'test.jpg;type'),
        }
    
        response = requests.post('https://swagger.piathome.com/api/files', headers=headers, files=files)
    

    link解析curl请求python

    【讨论】:

    • 返回 404。
    • 有东西 -F "Upload file=test.jpg;type=image/jpeg" 无论如何,谢谢你的帮助! :)
    猜你喜欢
    • 1970-01-01
    • 2016-01-30
    • 2020-03-18
    • 2015-10-25
    • 2023-04-02
    • 2021-10-08
    相关资源
    最近更新 更多