2013-04-02 23 views
1

我絕對是一個關於web服務的noob。我試圖使用groovy作爲客戶端來訪問一個簡單的Web服務。 Web服務具有基本身份驗證並使用https。在瀏覽器中,我會使用這樣的一些東西:如何使用Groovy訪問簡單的Web服務?

https://myserver.com/app/services/soap/call?script=MyService&username=me&password=secret 

如何從Groovy中調用此方法?我試圖找出如何使用groovy-wslite,但我無法弄清楚(我知道如何得到一個URL的服務......不知道所有這個身體和頭......等等是或者它與我所知道的url有什麼關係)。我也嘗試使用一個真正簡單的http排序呼叫:

'https://myserver.com/app/services/soap/call?script=MyService&username=me&password=secret'.toURL().text 

但這沒有奏效。是否有捷徑可尋?

謝謝!

回答

2

我在發佈後立即意識到問題可能與SSL和自簽名證書有關。我發現這個職位:

http://java.dzone.com/articles/reading-https-url-self-signed

使用這個庫:

https://github.com/kevinsawicki/http-request

然後溶液變得非常容易:

def req = 'https://myserver.com/app/services/soap/call?script=MyService&username=me&password=secret' 
req = HttpRequest.get(req) 
req.trustAllCerts() 
req.trustAllHosts() 
println(req.body()) 

我敢肯定有更好的方法做到這一點,但這對我很有用。 :D

+1

下面是使用內置的HTTP支持來處理自簽名證書的另一種方式:http://stackoverflow.com/questions/3242335/how-to-use-ssl-with-a-self-signed- certificate-in-groovy – ataylor

+0

謝謝。圖書館工作很好,但總是有好的第二個選擇。 –