使用Python调用REST服务

fro*_*die 3 python rest post web-services

我有一个我想要调用的REST服务.它需要类似于以下语法的东西:

http://someServerName:8080/projectName/service/serviceName/
      param1Name/param1/param2Name/param2
Run Code Online (Sandbox Code Playgroud)

我必须使用POST连接到它.我尝试在网上阅读(例如这里这里)......但这是我的问题:

如果我尝试使用HTTP get请求方法,通过构建我自己的路径,如下所示:

BASE_PATH = "http://someServerName:8080/projectName/service/serviceName/"
urllib.urlopen(BASE_PATH + "param1/" + param1 + "/param2/" + param2)
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误,说不允许GET.

如果我尝试使用HTTP post请求方法,如下所示:

params = { "param1" : param1, "param2" : param2 }
urllib.urlopen(BASE_PATH, urllib.urlencode(params))
Run Code Online (Sandbox Code Playgroud)

它返回404错误以及消息The requested resource () is not available..当我调试它时,它似乎将参数字符串构建为查询字符串("param1 = whatever¶m2 = whatever"......)

我如何使用POST但是按预期传递由斜杠分隔的参数?我究竟做错了什么?

fro*_*die 5

我知道这有点不公平,但这就是最终发生的事情......负责REST服务的程序员改变了它以使用&key=value语法.