отправить файл в запрос API от Python, чтобы реагировать-нативный код преобразования JavaScript - PullRequest
0 голосов
/ 31 января 2019

Я использую API стороннего программного обеспечения, называемого распознавателем пластин, которое можно увидеть здесь Я попробовал их пример кода Python, и он работает должным образом, но когда я попробовал его, используя мой код JavaScript, их ответ APIдругое значение означает, что мой JavaScript-код не эквивалентен их Python-коду, который они мне предоставили, и работает, вопрос в том, как сделать мой код точно такой же функцией, что и код Python, который я создал?

Этоэто код Python, который я запускаю и дает мне успешный ответ с ожидаемым выводом.

# pip install requests
import requests
from pprint import pprint

with open('./sampleCar3.jpg', 'rb') as fp:
    response = requests.post(
        'https://platerecognizer.com/api/plate-reader/',
        files=dict(upload=fp),
        headers={'Authorization': 'Token API_TOKEN'})
pprint(response.json())

И это код, который я пробовал на javascript, который регистрирует вывод ошибок

placeRecognizerPostRequest(imgSrc) {
        // imgSrc value = ./sampleCar3.jpg
        const body = new FormData();
        body.append("upload", imgSrc);

        fetch("https://platerecognizer.com/api/plate-reader/", {
            method: 'POST',
            headers: {
                "Authorization": "Token API_TOKEN",
                "Content-Type": "multipart/form-data"
            },
            body: body
        }).then((response) => {
            console.log(response);
        }).catch((err) => {
            console.log(err);
        });
    }

Я хочу получить успешный выходной ответ их API, он успешен в моем коде Python, но он дает мне неудачный ответ JSON, который не ожидается.

PS.путь к файлу обоих изображений в обоих кодах правильный.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Документация теперь включает пример того, как использовать API в Javascript .

0 голосов
/ 01 февраля 2019

Когда я загрузил изображения на сервер, я построил FormData следующим образом.

let file = {
    name: 'myimage.jpg',
    uri: 'path/to/the/image/myimage.jpg',
    type: 'image/jpg'
 };

 let body = new FormData();
 body.append('upload', file);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...