使用Python调用REST服务

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

http://someServerName:8080/projectName/service/serviceName/
      param1Name/param1/param2Name/param2

我必须使用POST连接到它.我已经尝试在线阅读(例如herehere)……但这是我的问题:

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

BASE_PATH = "http://someServerName:8080/projectName/service/serviceName/"
urllib.urlopen(BASE_PATH + "param1/" + param1 + "/param2/" + param2)

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

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

params = { "param1" : param1, "param2" : param2 }
urllib.urlopen(BASE_PATH, urllib.urlencode(params))

它返回404错误以及消息请求的资源()不可用.当我调试这个时,似乎是将params构建成一个查询字符串(“param1 = whatever& param2 = whatever”……)

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

最佳答案 我知道这有点不公平,但最终会发生这种情况……负责REST服务的程序员将其更改为使用& key = value语法.

点赞