Je connais CURL en PHP mais je l'utilise pour la première fois en Python avec pycurl.Problème avec pycurl.POSTFIELDS
Je continue à obtenir l'erreur:
Exception Type: error
Exception Value: (2, '')
Je ne sais pas ce que cela pourrait signifier. Voici mon code:
data = {'cmd': '_notify-synch',
'tx': str(request.GET.get('tx')),
'at': paypal_pdt_test
}
post = urllib.urlencode(data)
b = StringIO.StringIO()
ch = pycurl.Curl()
ch.setopt(pycurl.URL, 'https://www.sandbox.paypal.com/cgi-bin/webscr')
ch.setopt(pycurl.POST, 1)
ch.setopt(pycurl.POSTFIELDS, post)
ch.setopt(pycurl.WRITEFUNCTION, b.write)
ch.perform()
ch.close()
L'erreur fait référence à la ligne ch.setopt(pycurl.POSTFIELDS, post)
J'ai également eu des problèmes avec mon ordinateur local en obtenant une erreur sur l'erreur de prise de contact TLS. Je n'utiliserai pas pycurl. Est-ce que l'utilisation d'urllib offre un avantage par rapport à cela (qui fonctionne pour moi): cmd = "curl --url 'https://www.sandbox.paypal.com/cgi-bin/webscr' --data '" + post + "'" \ return os.system (cmd) –
L'avantage d'urllib est que vous n'avez pas besoin de forcer une commande externe, ce qui, surtout dans le cas d'une application web, est une bonne augmentation des performances. En outre, l'appel 'os.system()' varie en fonction de ce qu'il renvoie en fonction du système d'exploitation; Si vous avez migré vers Linux, la valeur de retour peut ne pas être la même. 'urllib' /' urllib2' vous permet également de lire plus facilement la réponse du site. Et enfin, si vous vouliez télécharger votre application sur un hôte qui n'avait pas de curl (ou un Goog le appengine qui ne supporte pas les processus externes), vous devriez utiliser 'urllib' ou similaire. – Crast