2013-05-23 3 views
2

ли posisble адаптировать этот кусок кода для макияжа положить запрос:питона запрос urllib2 сообщения

#!/usr/bin/python 

import urllib2, base64, urllib 

dir="https://domain.com/api/v1/" 
use="[email protected]" 
pas="123456" 

base64string = base64.encodestring('%s:%s' % (use, pas)).replace('\n', '') 

request = urllib2.Request(dir, headers={"Authorization" : "Basic %s" % base64string}) 
response = urllib2.urlopen(request).read() 

print response 

я пытаюсь с этим другим кодом, но я думаю, что это делает запрос GET, не так ли?

#!/usr/bin/python 

import urllib2, base64, urllib 

dir="https://domain.com/api/v1/" 
use="[email protected]" 
pas="123456" 

values = { 
     'list' :["201.22.44.12","8.7.6.0/24"] 
    } 

data = urllib.urlencode(values) 

base64string = base64.encodestring('%s:%s' % (use, pas)).replace('\n', '') 

request = urllib2.Request(dir, data, headers={"Authorization" : "Basic %s" % base64string}) 
response = urllib2.urlopen(request).read() 

ответ

7

Я не уверен, что он будет работать или нет для вас, но проверить этот кусок кода

Вы можете кодировать Dict используя URLLIB так:

import urllib 
import urllib2 

url = 'http://example.com/...' 
values = { 'productslug': 'bar','qty': 'bar' } 
data = urllib.urlencode(values) 
req = urllib2.Request(url, data) 
response = urllib2.urlopen(req) 
result = response.read() 
print result 
+0

Да, эта работа, но единственная проблема связана с urlencode, который, в моем случае, вызывает ошибку в запросе. – Rikr

+0

проверить значения, которые поступают в формате словаря или нет, и может ли я сказать, какая ошибка наступает –

+1

для моего случая, мне не нужен urlencode. но для получения дополнительной информации, если ответ находится в формате gzip, для печати вам нужно это: 'if response.info(). get ('Content-Encoding') == 'gzip': buf = StringIO (response.read ()) f = gzip.GzipFile (fileobj = buf) data = f.read() # Imprimir bonito print json.dumps (json.loads (data), sort_keys = True, indent = 2) ' – Rikr

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