2017-02-23 23 views
0

我正在使用HTTP Request Plugin對我的Bitbucket服務器進行API調用。http_request成功,但Groovy代碼獲得401

下列調用返回所需的結果:

def my-url = "http://my-username:[email protected]:7990/rest/api/1.0/my-project/pull-request-10" 
def response = http_request my-url 

不過,我有一個問題與HTTP請求插件,因爲它在原木純文本打印我的密碼。

因此,我試圖從Groovy腳本做同樣的呼籲:

def response = new URL(my-url).getText() 

但對於這個我得到一個401服務器響應。

任何想法爲什麼這次,通話失敗?

+0

首先,我沒有看到第一個代碼片段如何給你帶來任何結果,因爲'my-url'本身並不是一個有效的標識符。 – BalRog

+0

這不是,因爲我在發佈之前更改了名稱。 – octavian

回答

1

您正嘗試使用幾乎普通的Java應用Basic驗證。您必須生成驗證密鑰並將其附加到請求標頭。嘗試:

String addr = 'my-bitbucket-server.com:7990/rest/api/1.0/my-project/pull-request-10' 
String authString = 'my-username:my-password'.getBytes().encodeBase64().toString() 
def conn = addr.toURL().openConnection() 
conn.setRequestProperty("Authorization", "Basic ${authString}") 
def feed = new XmlSlurper().parseText(conn.content.text) 

希望這會有所幫助!