J'ai deux scripts Python. L'un utilise le Bibliothèque Urllib2 et on utilise le Demande de bibliothèque .
J'ai trouvé des requêtes plus faciles à mettre en œuvre, mais je ne trouve pas d'équivalent pour la méthode d'urlib2. read()
fonction. Par exemple :
...
response = url.urlopen(req)
print response.geturl()
print response.getcode()
data = response.read()
print data
Une fois que j'ai construit mon url de poste, data = response.read()
me donne le contenu - j'essaie de me connecter à une instance api de vcloud director et la réponse indique les points d'extrémité auxquels j'ai accès. Cependant, si j'utilise la bibliothèque Requests comme suit : .....
....
def post_call(username, org, password, key, secret):
endpoint = '<URL ENDPOINT>'
post_url = endpoint + 'sessions'
get_url = endpoint + 'org'
headers = {'Accept':'application/*+xml;version=5.1', \
'Authorization':'Basic '+ base64.b64encode(username + "@" + org + ":" + password), \
'x-id-sec':base64.b64encode(key + ":" + secret)}
print headers
post_call = requests.post(post_url, data=None, headers = headers)
print post_call, "POST call"
print post_call.text, "TEXT"
print post_call.content, "CONTENT"
post_call.status_code, "STATUS CODE"
....
....the print post_call.text
y print post_call.content
ne renvoie rien, même si le code d'état est égal à 200 dans les requêtes post call.
Pourquoi ma réponse à partir de Requests ne renvoie aucun texte ou contenu ?