API PiXhost - загрузка изображений

Я пытаюсь использовать API PiXhost для загрузки изображений. Каждый раз, когда я что-то запрашиваю у https://api.pixhost.to/images, он всегда возвращает 400 Bad request. В их документации по API используется пакет unirest python, но я не могу его установить, так как он использует слишком старый код.

Я делаю что-то не так здесь?

Ссылка на документацию

Мой код:

import requests
headers = {
    "Content-Type": "multipart/form-data; charset=utf-8",
    "Accept": "application/json"
}
params = {
    "content_type": "0",
    "max_th_size": "420"
}
files = {
    "img": open("image.jpg", mode = "rb")
}

response = requests.post("https://api.pixhost.to/images", headers=headers, params=params, files=files)```

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

adir abargil 20.12.2020 13:23

Добавил ответ

PDHide 20.12.2020 14:17

Не могли бы вы также проголосовать

PDHide 20.12.2020 15:57
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python.
Некоторые методы, о которых вы не знали, что они существуют в Python.
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
3
617
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Просто быстрый тест, мне удалось сделать это через cURL

curl -X POST --include "https://api.pixhost.to/images" \
  -H 'Content-Type: multipart/form-data; charset=utf-8' \
  -H 'Accept: application/json' \
  -F 'img=@test1.jpg' \
  -F 'content_type=0' \
  -F 'max_th_size=420'

Https://pixhost.to/show/39/178828640_test1.jpg

Примечание: изображение test1 находится в той же папке, когда я запускаю скрипт.

Я также получаю код состояния 400 без тела при удалении @ перед URL-адресом (поэтому проверьте URL-адрес еще раз)

HTTP/1.1 400 Bad Request
Server: nginx/1.10.3 (Ubuntu)

Работает, теперь мне просто нужно преобразовать его в python, используя библиотеку запросов.

np3 20.12.2020 13:49
Ответ принят как подходящий
import requests

url = "https://api.pixhost.to/images"

payload = {'content_type': '0',
'max_th_size': '420'}
files = {
    'img': ('1.JPG', open('C:/Users/prave/Desktop/1.JPG', 'rb')),
    'content_type': '0',
    'max_th_size': '420'
}
headers = {

}

response = requests.request("POST", url, data=payload, files=files)

print(response)

Ну вот

Выход :

Ответ 200

Проблема с вашим кодом:

Конечная точка ожидает formdata, вы передаете параметр запроса

Итак, как я понял это

Перейдите в документацию и щелкните вкладку curl, чтобы получить эквивалентный код curl:

Теперь перейдите к почтальону и нажмите «Импорт»> «Необработанный текст»> вставьте завиток, нажмите «Продолжить», а затем импортируйте

Это создает запрос для вас

Теперь перейдите к телу и выберите тип img в качестве файла и загрузите файл:

Теперь щелкните код и сгенерируйте эквивалентный код запроса curl и python:

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

Пожалуйста, не размещайте изображения текста; см. meta.stackoverflow.com/questions/285551/…

tripleee 20.12.2020 14:17

Это не текст, это выходной скриншот из подсказки!

PDHide 20.12.2020 14:20

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

tripleee 20.12.2020 14:29

Изменил на текст

PDHide 20.12.2020 15:40

Другие вопросы по теме