J'ai un service REST que j'essaie d'appeler. Il nécessite quelque chose de similaire à la syntaxe suivante:Appel d'un service REST avec Python
http://someServerName:8080/projectName/service/serviceName/
param1Name/param1/param2Name/param2
Je dois me connecter à l'aide de POST. J'ai essayé de lire sur le sujet en ligne (here et here, par exemple) ... mais voici mon problème:
Si j'essayer d'utiliser le HTTP get méthode de la requête, en construisant mon propre chemin, comme ceci:
BASE_PATH = "http://someServerName:8080/projectName/service/serviceName/"
urllib.urlopen(BASE_PATH + "param1/" + param1 + "/param2/" + param2)
il me donne une erreur en disant que GET n'est pas autorisé.
Si j'essayer d'utiliser la méthode de requête HTTP post, comme ceci:
params = { "param1" : param1, "param2" : param2 }
urllib.urlopen(BASE_PATH, urllib.urlencode(params))
il renvoie une erreur 404 avec le message The requested resource() is not available.
Et quand je le débugger, il semble être la construction des params dans une requête string ("param1 = quel que soit & param2 = quel que soit" ...)
Comment puis-je utiliser POST mais transmettre les paramètres délimités par des barres obliques comme prévu? Qu'est-ce que je fais mal?
+1: Vous devez fournir des données pour forcer la demande POST. –
Pourquoi devrais-je utiliser urllib2? Et pourquoi le point d'interrogation? – froadie