使用curl登录身份验证

时间:2015-10-14 07:40:02

标签: php angularjs curl

我想使用curl操作使用JIRA API登录。

我在卷曲操作中遇到问题。我在JIRA_URL中有主要网址。' / demo / 111&#39 ;; $ username和$ password的值在函数中正确传递,但显示状态'失败'。我的卷曲代码中有任何问题

function JIRA_authenticate($username, $password) {

     $url = JIRA_URL . '/demo/111';
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
    curl_setopt($curl, CURLOPT_URL, $url);

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // ssl ensure cert
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); /// ssl ensure cert

    $issue_list = (curl_exec($curl));
    echo $issue_list;

    return $issue_list;
}

1 个答案:

答案 0 :(得分:1)

您没有提及您尝试使用此代码实现的目标。 您是否正在尝试获取机票信息,发布问题?您只是使用API​​ ...

这是一个适用于JIRA API的脚本。

<?php
$username = 'test';
$password = 'test';
$url = "https://xxxxx.xxxxxxx.net/rest/api/2/project";

$ch = curl_init();

$headers = array(
    'Accept: application/json',
    'Content-Type: application/json'
);
$test = "This is the content of the custom field.";
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");

//curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$result = curl_exec($ch);
$ch_error = curl_error($ch);

if ($ch_error) {
    echo "cURL Error: $ch_error";
} else {
    echo $result;
}

curl_close($ch);
?>

此代码从JIRA获取项目。 如果要创建问题,则必须将REST URL更改为/ rest / api / 2 / issue /并使用“POST”而不是“GET”方法。