2017-02-23 1 views
0

Ich verwendete die HTTP Request Plugin, um einen API-Aufruf an meinen Bitbucket-Server zu machen.http_request ist erfolgreich, aber Groovy-Code wird 401

Der folgende Aufruf gibt das gewünschte Ergebnis:

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

Allerdings habe ich ein Problem mit der HTTP-Request-Plugin hatte, weil es mein Passwort im Klartext in den Protokollen druckt.

Deshalb habe ich versucht, den gleichen Anruf von einem groovigen Skript tun:

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

Aber dafür erhalte ich eine 401 Server-Antwort.

Eine Idee, warum diesmal der Anruf fehlschlägt?

+0

Zunächst einmal sehe ich nicht, wie das erste Snippet überhaupt ein Ergebnis lieferte, da 'my-url' für sich genommen keine gültige Kennung ist. – BalRog

+0

Es ist nicht, weil ich seinen Namen änderte, bevor ich es hier postete. – octavian

Antwort

1

Sie versuchen Basic Auth mit fast Java zu verwenden. Sie müssen Ihren Authentifizierungsschlüssel generieren und ihn an die Anforderungsheader anhängen. Versuchen Sie:

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) 

Hoffe, das würde helfen!

Verwandte Themen