我想连接到 Redmine API。该页面受.htaccess
文件保护。只要.htaccess
和 Redmine 的用户凭据(名称 + 密码)相同,就没有任何问题。
嗯......我的两个队友正在使用不同的凭据(他们的错误代码:)401, not authorized
,他们只是不想更改它们。
实际上,我认为这是因为他们没有通过.htaccess
(使用他们的凭据)或者他们通过.htaccess
但无法将 Redmine 与他们的数据一起使用。
我一直在寻找几个小时(嗯,至少从 12:30 点开始),但无法解决这个问题。我只是不知道如何.htaccess
正确传递和 API 凭据。
我的代码:
$sURL = 'https://myserver/redmine/';
$sAction = 'projects.json';
$sApiUser = 'user_name';
$sApiPass = 'user_pass';
$sHtAccUser = 'htacc_user';
$sHtAccPass = 'htacc_pass';
#$sURL = sprintf('https://%s:%s@myserver/redmine/',$sUser,$sPass);
$aOptions = array(
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_USERPWD => $sUser.':'.$sPass,
CURLOPT_PORT => 443,
CURLOPT_CONNECTTIMEOUT => 4,
CURLOPT_TIMEOUT => 6,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE,
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_HEADER => FALSE,
#CURLOPT_HTTPHEADER => array('Authorization: Basic '.base64_encode($sHtAccUser.':'.$sHtAccPass)),
CURLOPT_FOLLOWLOCATION => TRUE,
CURLOPT_URL => $sURL.$sAction.$sGetParamQuery);
$ch = curl_init();
if($ch === false)
{
die('Failed to create curl object');
}
curl_setopt_array($ch,$aOptions);
$mResult = curl_exec($ch);
$aCurlInfo = curl_getinfo($ch);
$iHTTPStatus = (int) $aCurlInfo['http_code'];
curl_close($ch);