我有一個REST服務,我試圖調用。它需要類似於以下語法的東西:使用Python調用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))
它與消息The requested resource() is not available.
一併返回404錯誤當我調試這個,它似乎是建立PARAMS進入查詢字符串(「param1 = whatever & param2 = whatever」...)
如何使用POST,但傳遞由斜線分隔的參數,如預期的那樣?我究竟做錯了什麼?
+1:您必須提供數據以強制它成爲POST請求。 – 2010-08-26 20:08:38
我爲什麼要使用urllib2?爲什麼問號? – froadie 2010-08-26 20:18:08