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 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示