Подключил VK API. Необходимо сделать отправку файлов на сервер как о этом рассказано на этой странице - P.S. Загрузка файлов на стену пользователя
import vkfrom time import sleepimport sysimport urllib.requestimport urllib.parseimport base64import requestsvkapi = vk.API(access_token='token', app_id='id')sleep(0.5)data = vkapi.photos.getWallUploadServer(user_id=""72374405"")DATA_USER_ID = data['user_id']DATA_ALBUM_ID = data['album_id']DATA_UPLOAD_URL = data['upload_url']#with open(""1.jpg"", ""rb"") as image_file: #fileD = base64.b64encode(image_file.read())#files = {'1.jpg': open('1.jpg', 'rb')}#r = requests.post(DATA_UPLOAD_URL, files=files)#r.status_code == requests.codes.ok#print(r)#html = r.read().decode(""utf-8"")#dataP = '1.jpg'dataP = ""photo="" + dataP#.encode(""ASCII"")response = urllib.request.urlopen(DATA_UPLOAD_URL,dataP)html = response.read().decode(""utf-8"")print (html)решеткой помечено то, что пробовал но не сработало, либо не подошло.
Вроде как корректно отработался вариант с
files = {'1.jpg': open('1.jpg', 'rb')}r = requests.post(DATA_UPLOAD_URL, files=files)r.status_code == requests.codes.okprint(r)#html = r.read().decode(""utf-8"")Однако в таком случае не работает вывод и тем самым я не могу понять, отработался ли должным образом запрос.
В случае успешного завершения кода выхлоп таков:
{""server"":622624,""photo"":""[]"",""hash"":""8112ae8847b27fb1cdf678d3d168e6ae""}То есть загрузка изображения провальная.
Может кто-либо смог или и так знает как загрузить файл на сервер ВК через POST на Python3. Поделитесь опытом, советом, замечанием. Если что-то в коде непонятно - пишите; отвечу.
question@mail.ru
·