Calling a REST service with Python
Solution 1
I know this is sort of unfair, but this is what ended up happening... The programmer in charge of the REST service changed it to use the &key=value
syntax.
Solution 2
- Use
urllib2
You're going to have to be clever; something like
params = { "param1" : param1, "param2" : param2 }
urllib2.urlopen(BASE_PATH + "?" + urllib.urlencode(params), " ")
Might work.
froadie
Updated on June 04, 2022Comments
-
froadie almost 2 years
I have a REST service that I'm trying to call. It requires something similar to the following syntax:
http://someServerName:8080/projectName/service/serviceName/ param1Name/param1/param2Name/param2
I have to connect to it using POST. I've tried reading up on it online (here and here, for example)... but this is my problem:
If I try using the HTTP get request method, by building my own path, like this:
BASE_PATH = "http://someServerName:8080/projectName/service/serviceName/" urllib.urlopen(BASE_PATH + "param1/" + param1 + "/param2/" + param2)
it gives me an error saying that GET is not allowed.
If I try using the HTTP post request method, like this:
params = { "param1" : param1, "param2" : param2 } urllib.urlopen(BASE_PATH, urllib.urlencode(params))
it returns a 404 error along with the message
The requested resource () is not available.
And when I debug this, it seems to be building the params into a query string ("param1=whatever¶m2=whatever"...)How can I use POST but pass the parameters delimited by slashes as it's expected? What am I doing wrong?