我有一个我想要调用的REST服务.它需要类似于以下语法的东西:
http://someServerName:8080/projectName/service/serviceName/
param1Name/param1/param2Name/param2
我必须使用POST连接到它.我已经尝试在线阅读(例如here和here)……但这是我的问题:
如果我尝试使用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语法.
标签:python,rest,post,web-services