Как залить изображение на сервер VK для дальнейшей публикации на стену?

Следуя инструкциям из VK API получил адрес сервера, на который в будущем попадёт изображение.
5b09ac965e3ff291537446.png
Дальше требуется сформировать POST запрос с полями upload_url и photo в формате multipack/form-data. И на этом моменте всё заступорилось. Что бы я не пробовал, сервер вместо поля photo присылает пустой массив. Помогите, пожалуйста!
  • Вопрос задан
  • 975 просмотров
Решения вопроса 1
Есть программа для выполнения HTTP запросов. Называется Postman. В ней можно наглядно сформировать запрос и сгенерировать код.
Вот пример curl запроса:
curl -X POST \
  'https://pu.vk.com/<ссылка загрузки>' \
  -H 'content-type: multipart/form-data;' \
  -F photo=@/private/tmp/f.png

Или на Python:
import http.client

conn = http.client.HTTPConnection("pu,vk,com")

payload = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"photo\"; filename=\"f.png\"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--"

headers = {
    'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
    'Cache-Control': "no-cache",
    'Postman-Token': "78ca70c7-7da5-45c7-8a79-67d79d09761c"
    }

conn.request("POST", "", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы