dongyou2714 2019-03-14 11:17 采纳率: 0%
浏览 4058

Jenkins API连接被拒绝或错误403怎么解?

我试图通过API来管理Jenkins的工作。通过命令行,使用此行访问数据没有问题:

curl -v --noproxy localhost, http://localhost:4545/job/Test/api/json --user username:token

Jenkins跑在localhost:4545上。 --noproxy部分很重要,不然就会发出403 error警告。 当我尝试在我的PHP文件中做同样的事情时,它却不起作用。 我的API代码:
function getLastBuildStatus($url, $jobName, $username, $api_token){
    $ch = initCurl($username, $api_token); //see function downside

    curl_setopt($ch, CURLOPT_URL, $url . '/job/' . $jobName . '/lastBuild/api/json');

    curl_setopt($ch, CURLOPT_NOPROXY, "localhost"); //return Error:Failed to connect to localhost port 4545: Connection refused
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true); //return Error 403 Access denied

    $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;
}
我也尝试设置代理,但我还是得到一个代码错误403警告。
  • 写回答

1条回答 默认 最新

  • Roc-xb 后端领域优质创作者 2023-02-09 00:01
    关注

    1.检查Jenkins服务器上的防火墙设置,确保允许API访问。
    2.检查Jenkins服务器上的安全设置,确保允许API访问。
    3.检查Jenkins服务器上的用户权限,确保用户具有访问API的权限。
    4.检查API调用的URL是否正确,确保URL正确无误。

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)