Преобразование команды cURL в запрос Python - PullRequest
0 голосов
/ 10 мая 2018

Я новичок в CURL; Я хотел преобразовать команду curl этой структуры:

curl -X POST "http://127.0.0.1:8881/models/faewrfaw/v1/predict" -H "Content-Type:multipart/form-data" -F "data={\"key\": \"Path\"};type=application/json" -F "Path=@C:\Users\rtam\Music\1 2 3\TEST123.jpg"

запросу Python. Я использовал https://curl.trillworks.com/, чтобы помочь мне, и получил в качестве вывода:

import requests

headers = {
    'Content-Type': 'multipart/form-data',
}

files = {
    'data': (None, '{"key": "Path"};type'),
    'Path': ('C:\\Users\\rtam\\Music\\1 2 3\\TEST123.jpg', open('C:\\Users\\rtam\\Music\\1 2 3\\TEST123.jpg', 'rb')),
}

response = requests.post('http://127.0.0.1:8881/models/faewrfaw/v1/predict', headers=headers, files=files)

Однако при тестировании ответа в python я получил неверный запрос / запрос, который сервер не понял. Я заметил, что сайт trillworks не учитывает тип (application / json) в своем форматировании, должен ли он быть в скрипте python?

1 Ответ

0 голосов
/ 10 мая 2018

Этот ответ может вам помочь: Как отправить JSON как часть составного POST-запроса

В вашем случае это будет

files = {
    'Path': (
        'C:\\Users\\rtam\\Music\\1 2 3\\TEST123.jpg', 
        open('C:\\Users\\rtam\\Music\\1 2 3\\TEST123.jpg', 'rb'), 
        'application/octet-stream'
    )
    'data': (None, '{"key": "Path"}', 'application/json'),
}

response = requests.post(
    'http://127.0.0.1:8881/models/faewrfaw/v1/predict',
    files=files
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...