Как загрузить фото на сервер через ВК не используя requests?

Использую Google App Engine - там проблемы с использованием библиотеки requests.
На ПК работает следующий код.

import urllib2
import os
import json

def callVkAPI(query):
    request = urllib2.Request(query)
    response = urllib2.urlopen(request)
    result=response.read()
    return result

# Инициализируем папки
fl_fldr = os.path.join(os.path.dirname(__file__),'files')
print fl_fldr

# Получаем токен - использую vk_auth
token = vk_auth.auth('@gmail.com', 'password', 'gid', 'wall,photos')[0]
print token

# Делаем запрос на получение сервера загрузки
queryString = 'https://api.vk.com/method/photos.getWallUploadServer?gid={gid}&access_token={token}'.format(
    gid='gid', token=token)

resp = json.loads(callVkAPI(queryString))
print resp

# Получаем ссылку для загрузки фото и считываем файл
upload_url = resp['response']['upload_url']
fl = os.path.join(fl_fldr, '001_01.jpg')
files = {'photo': ('001.jpg', open(fl, 'rb'))}
print files

# Делаем запрос через requests
# Рабочий код но для библиотеки реквестс. Мне нужно без неё
import requests as rs
r = rs.post(upload_url, files=files)
print r.text


Соответственно, всё работает. Объясните, как преобразовать запрос, чтобы он использовал только стандартную библиотеку? Понять не могу, что requests делает с фото..

Спасибо!
  • Вопрос задан
  • 402 просмотра
Решения вопроса 1
un1t
@un1t
Есть еще другие библиотеки - pycurl, poster и другие. Можешь попробовать их, а на urllib тоже можно, но там довольно сложно получается, что-то вроде этого code.activestate.com/recipes/578668-encode-multipa...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@deliro
Положить папку с requests рядом тоже нельзя?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы