我正在尝试通过Jenkins API将WordPress网站连接到我的工作Jenkins。即使我看到很多帖子并尝试过,我仍然无法使我的Jenkins API正常工作。
所以我有一个工作在http://localhost:9090
的Jenkins在Test
中运行。
我使用用户名和密码在proxy:8080
上配置了Jenkins的HTTP代理。当我在詹金斯(Jenkins)中验证代理时,就成功了。
詹金斯也告诉我,我的令牌是never used
。
关于我的API,我有:
function getLastBuildStatus($url, $jobName, $username, $api_token){
$password = 'xxxxx';
$ch = initCurl($username, $api_token); //see function downside
curl_setopt($ch, CURLOPT_URL, $url . '/job/' . $jobName . '/lastBuild/api/json');
curl_setopt($ch, CURLOPT_PROXY, 'http://proxy:8080');
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
$result = executeCurl($ch);
$json = json_decode($result);
var_dump ($result);
if($json){
return $json->result;
}
else {
return -1;
}
function initCurl($username, $api_token){
$ch = curl_init();
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $api_token);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
return $ch;
}
无论有没有代理,我都遇到Access Denied
错误。我想念什么吗?
我为Jenkins代理反向添加了httpd.conf
规则。仍然是相同的错误,但可能需要更深入的了解。
ProxyPass / http://localhost:9090/ nocanon
ProxyPassReverse / http://localhost:9090/
ProxyRequests Off
AllowEncodedSlashes NoDecode
<Proxy http://localhost:9090/*>
Order deny,allow
Allow from all
</Proxy>
好!所以我可以通过命令行使其工作。输入该命令后,我可以访问数据:
curl -v --noproxy localhost, http://localhost:9090/job/Test/api/json --user username:token
我不明白为什么,因为当我将curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);
放入PHP文件时,我仍然得到403 error
。
但是,当我放curl_setopt($ch, CURLOPT_PROXY, '');
时,我得到了Error:Failed to connect to localhost port 9090: Connection refused