2015-12-18 2 views
0

Мне нужно переписать следующую функцию, используя только стандартную библиотеку python.Как перейти от запроса к Urllib2

def request_release_info(self): 
    req = requests.get('https://api.github.com/repos/user/repo/releases/latest', 
         auth=('user', 'token')) 
    content = req.json() 
    return content 

Поэтому мне нужно заменить запросы от URLLIB/urllib2, но я не могу найти способ, чтобы передать мое имя и мой маркер подобным образом.

Благодарим за помощь!

+0

Вы на Python 2 или 3? – senshin

+0

Я нахожусь на python 2.7.11 – mandok

+0

Вы пробовали это? http://stackoverflow.com/q/2407126/ – senshin

ответ

0
import urllib, json 

result = urllib.urlopen('https://<My_Token>:[email protected]/repos/<user>/<repo>/releases/latest') 
r = json.load(result.fp) 

print r 
result.close() 
0

Это пример использования вашего кода, но не забывайте об обработке ошибок.

from urllib import request 
from urllib import error 
from base64 import b64encode 

def request_release_info(self): 
    # build authorization 
    user_and_pass = b64encode(b"username:password").decode("ascii") 

    # first, we build request 
    my_req = request.Request('https://api.github.com/repos/user/repo/releases/latest') 

    # then attach auth header 
    my_req.add_header('Authorization', 'Basic %s' % user_and_pass) 

    # and after that try to execute it 
    try: 
     content = request.urlopen(my_req) 
    except error.HTTPError: 
     content = "add error processing, example for wrong log/password" 

    return content 
Смежные вопросы