PHP 休息 API 版本 2 中的 JIRA 错误 401

PHP Rest API JIRA error 401 in version 2

我正在使用 JIRA API 但是当我调用 curl 时出现 401 错误。请告诉我哪里错了。

响应是:

Unauthorized (401)

Encountered a "401 - Unauthorized" error while loading this page.

我的代码如下:

$username = '********@gmail.com';
$password = '********';

$url = 'https://vikasxtreem.atlassian.net/rest/api/2/issue/JRA-9';

$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);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);

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

您需要自己构建和发送基本身份验证 header。为此,您需要执行以下步骤:

  • 构建一个形式为 username:password
  • 的字符串
  • Base64 编码字符串
  • 提供 "Authorization" header 内容 "Basic " 后跟编码字符串。

请求如下:

curl -D- -X GET -H "Authorization: Basic ZnJlZDpmcmVk" -H "Content-Type: application/json" "https://vikasxtreem.atlassian.net/rest/api/2/issue/JRA-9"

并且,如前所述,您的来电如下:

curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

添加

curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

到选项列表。

同时检查您是否正在通过也需要身份验证的代理。