python httplib Nom ou service qui n'est pas connu
Je suis en train d'utiliser httplib pour envoyer des informations de carte de crédit authorize.net. Quand j'essaie de poster la demande, j'ai le traceback:
File "./lib/cgi_app.py", line 139, in run res = method()
File "/var/www/html/index.py", line 113, in ProcessRegistration conn.request("POST", "/gateway/transact.dll", mystring, headers)
File "/usr/local/lib/python2.7/httplib.py", line 946, in request self._send_request(method, url, body, headers)
File "/usr/local/lib/python2.7/httplib.py", line 987, in _send_request self.endheaders(body)
File "/usr/local/lib/python2.7/httplib.py", line 940, in endheaders self._send_output(message_body)
File "/usr/local/lib/python2.7/httplib.py", line 803, in _send_output self.send(msg)
File "/usr/local/lib/python2.7/httplib.py", line 755, in send self.connect()
File "/usr/local/lib/python2.7/httplib.py", line 1152, in connect self.timeout, self.source_address)
File "/usr/local/lib/python2.7/socket.py", line 567, in create_connection raise error, msg
gaierror: [Errno -2] Name or service not known
- Je construire ma demande comme suit:
mystring = urllib.urlencode(cardHash)
headers = {"Content-Type": "text/xml", "Content-Length": str(len(mystring))}
conn = httplib.HTTPSConnection("secure.authorize.net:443", source_address=("myurl.com", 443))
conn.request("POST", "/gateway/transact.dll", mystring, headers)
d'ajouter une autre couche de cela, il a travaillé sur notre serveur de développement qui a httplib 2.6 et sans le source_address paramètre dans httplib.HTTPSConnection.
Toute aide est grandement appréciée.
===========================================================
EDIT:
Je peux l'exécuter en ligne de commande. Apparemment, c'est une sorte de problème d'autorisations. Toutes les idées que les autorisations j'aurais besoin de subvention pour les utilisateurs qui pour ce faire? Éventuellement, Apache ne peut pas ouvrir le port?
- Ce qui se passe avec une requête GET, même chemin, pas les en-têtes?
- même chose que sur un post.
- Hm, le script fonctionne très bien, même en arriver à
The merchant login ID or password is invalid or the account is inactive.
si j'ai l'impression que la réponse. Se concentrer sur des problèmes de réseau;
Vous devez vous connecter pour publier un commentaire.
Comme un (évidente) de heads-up, ce même message d'erreur peut également être déclenchée par y compris le protocole dans le paramètre hôte. Par exemple ce code:
également causer de la "gaierror: [Errno -2] Nom ou le service ne sait pas d'erreur, même si l'ensemble de votre réseau est correctement configuré.
Cette erreur indique souvent une défaillance de votre DNS. Ne
ping secure.authorize.net
de retour avec succès les réponses à partir du même serveur qui reçoit le gaierror? Le nom d'hôte avoir une faute de frappe-t-il?nslookup secure.authorize.net
dites-vous?Le problème, finalement, est descendu sur le fait que selinux a été l'arrêter apache à partir de l'obtention de ce port. Désactiver selinux corrigé les problèmes. J'ai eu un problème plus tard, où je n'ai pas de /var/www/.python-oeufs/, de sorte MySQLdb était de la tuyauterie lors de l'importation. Mais après un mkdir, il a été fixé.
pass le port séparément à partir de l'hôte:
gaierror: [Errno -2] Name or service not known
plus, mais une autre erreur?