Как отправить запрос?

Добрый день.

Есть пример вызова запроса и еще есть ключ API. Подскажите плиз, как вызвать роботом?

curl -siX “POST” “https://classification.latest.dbrain.io/predict
-H ‘Authorization: Token <API_TOKEN>’
-H ‘Content-Type: multipart/form-data; charset=utf-8’
-H ‘Accept: multipart/form-data’
-F “image=@document.jpg”

Здравствуйте!
Уточню вопрос, отвечу.

@Denis_Ivanenko, а как передается ключ API?

@g.melihov Сорри, отредактировал запрос, упустил.

Здравствуйте, Денис!
В данный момент авторизация через токен не поддерживается. В будущем обязательно планируем добавить данную функцию.

@Denis_Ivanenko, в вашем случае возможно построить такого рода алгоритм, используя командную строку. Ответ сервера сохраняется в файл, который мы потом считываем и сохраняем в переменную.

command = `curl -siX "POST" "https://classification.latest.dbrain.io/predict"
-H 'Authorization: Token ${token}'
-H 'Content-Type: multipart/form-data; charset=utf-8'
-H 'Accept: multipart/form-data'
-F "image=@document.jpg" > ${filePath}`;

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

1 Симпатия

@a.polianskii Антон, спасибо. Я так понял, что вы имели ввиду новый релиз когда сообщили “Также в ближайшие дни выйдет релиз, в котором вы сможете в платформе через функцию HTTP-запрос отправлять Authorization-заголовок, в который можно будет вставить токен.”

А как это сделать в новой версии?

Здравствуйте, @Denis_Ivanenko!

Да, я имел ввиду релиз 1.7. В нём вы можете использовать поле “Дополнительные заголовки” в функции “HTTP запрос”. Для вашего случая вам нужно сделать запись вида
{ Authorization: "Token <API_TOKEN>" }.

@a.polianskii, Антон. подскажите, а куда в новом релизе записать вот эту часть? Я пробовал в “Дополнительные заголовки”, но похоже оно предназначено только для одного заголовка.

-H ‘Content-Type: multipart/form-data; charset=utf-8’
-H ‘Accept: multipart/form-data’
-F “image=@document.jpg” > ${filePath}`;

И в каком формате? Давайте рассмотрим на конкретном примере и дойдем до конца :).

Я думаю это будет полезно для базы знаний, если нужно я могу скинуть токен ЛС.

Добрый день, @Denis_Ivanenko!

-H ‘Content-Type: multipart/form-data; charset=utf-8’
-H ‘Accept: multipart/form-data’

Первые две строчки не нужны, эти заголовки автоматически подставятся потому что вы отправляете файл.

-F “image=@document.jpg”;

Сам файл вы можете прикрепить в Body параметрах функции “HTTP запрос”

Так что в данном случае вам нужно прописать дополнительно только Authorization заголовок как я указал выше.

Но вы можете прописывать и более одного заголовка, перечислив их через запятую, например, если бы файл не отправлялся:

{ "Authorization": "Token <API_TOKEN>", "Content-type": "multipart/form-data; charset=utf-8", "Accept": "multipart/form-data"} .

Напишите, пожалуйста, после проверки у себя.

@a.polianskii Пока при выполнении запроса null возвращается

Добрый день, @Denis_Ivanenko!
Ситуация не изменилась? Попробуйте в таком случае прописать всё таки дополнительные заголовки полностью.
{ "Authorization": "Token <API_TOKEN>", "Content-type": "multipart/form-data; charset=utf-8", "Accept": "multipart/form-data"} .

@a.polianskii Пока не изменилась, этот вариант я тоже попробовал. Отправил видео разработчику сервиса, подождем их ответ.

@a.polianskii, и еще в этой переменной что должно быть? Это путь к файлу?

document.jpg

Добрый день, @Denis_Ivanenko,

В какой переменной? Это указано имя файла. Вы можете указать путь и имя файла через Body-параметры - Отправить файл - Выбрать. Также можете указать имя поля, в данном случае image.
Получится как раз запись -F “image=@document.jpg”

Имел в ввиду в варианте командной строкой, откуда скрипт узнает о том, какой файл передавать? Допустим файл на диске в папке С:\Temp

Здравствуйте, @Denis_Ivanenko!

Если через командную строку - тогда можете подставить путь к файлу С:\Temp\document.jpg вместо document.jpg в -F "image=@document.jpg".