Как преобразовать команду curl в API Python?Я пытался конвертировать, но он отвечает 400 плохой запрос - PullRequest
0 голосов
/ 07 мая 2019

Я преобразовал команду curl в код python, используя этот веб-сайт , но код, похоже, не работает.

Команда Curl

curl -X POST "http://127.0.0.1:8881/models/aak/v1/predict" -H "Content-Type:multipart/form-data" -F "data={\"key\": \"Filename\"};type=application/json" -F "Filename=@img.png"

Код Python

import requests

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

files = {
    'data': (None, '{"key": "Filename"};type'),
    'Filename': ('img.png', open('img.png', 'rb')),
}

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

1 Ответ

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

Вы должны предоставить более полную информацию о ситуации в целом, я предполагаю, что вы используете какой-либо тип флеш-сервера ML.Кроме того, как работает ваш сценарий.Я предполагаю, что у вас все остальное правильно настроено и правильный рабочий каталог установлен.

Я не на сто процентов уверен в том, что ожидает сервер, но я попробую

Давайте разберем отправляемое сообщение:

api url - http://127.0.0.1:8881/models/aak/v1/predict

метод - запись

body / json - {"Ключ": "Имя файла"}

file / image - image.png

import requests

url = 'http://127.0.0.1:8881/models/aak/v1/predict'
json_data = {"Key": "Filename"}

file = {
         'data': (None, json.dumps(json_data), 'application/json'),
         'file': (file_name, open('image.png', 'rb'), 'application/octet-stream')
}

r = requests.post{url, files=file}

print(r.status_code) # should be 200 or you can access attributes of r if something else should be returned

Примечание. Может потребоваться установить заголовок как 'Content-type': 'multipart/form-data', но запросы обычно очень хороши при его определениидля тебя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...