Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins http_请求成功,但Groovy代码得到401_Jenkins_Groovy_Jenkins Pipeline - Fatal编程技术网

Jenkins http_请求成功,但Groovy代码得到401

Jenkins http_请求成功,但Groovy代码得到401,jenkins,groovy,jenkins-pipeline,Jenkins,Groovy,Jenkins Pipeline,我正在使用对我的Bitbucket服务器进行API调用 以下调用返回所需的结果: def my-url = "http://my-username:my-password@my-bitbucket-server.com:7990/rest/api/1.0/my-project/pull-request-10" def response = http_request my-url 然而,我对HTTP请求插件有一个问题,因为它在日志中以纯文本打印我的密码 因此,我尝试从groovy脚本执行相同的调

我正在使用对我的Bitbucket服务器进行API调用

以下调用返回所需的结果:

def my-url = "http://my-username:my-password@my-bitbucket-server.com: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
服务器响应


知道这次调用失败的原因吗?

您正在尝试使用几乎普通的Java应用Basic auth。您必须生成身份验证密钥并将其附加到请求头。尝试:

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 )

希望这会有帮助

首先,我不知道第一个代码片段是如何给你任何结果的,因为
我的url
本身不是一个有效的标识符。它不是,因为我在这里发布之前更改了它的名称。