我有一些问题。我试图获取信息资源。在此之前,我需要基本身份验证。我在这里找到了一些解决方案,但它不起作用。
$username = "username";
$password = "password";
$url = "https://sapi.website.ru:3443/services/";
//GetCountries
$urlCountries = $url."?action=GetCountries";
$remote_url = $urlCountries;
$opts = array(
'http' => array(
'method' => "GET",
'header' => "Authorization: Basic ".base64_encode("$username:$password"),
'timeout' => 60
)
);
$context = stream_context_create($opts);
$file = file_get_contents($remote_url, false, $context);
print($file);
错误:无法打开流:中的连接超时 我也有这个: file_get_contents():无效的date.timezone值' Europe / Moskow',我们选择了时区' UTC'现在 - 但它可能适用于它。或者不是?
也许问题在于HTTPS连接。 支持我有API的地方,给我一个url,登录名和密码。他们说:"你只需要基本身份验证"。
这是我第一次尝试使用它,也许我错过了一些重要的东西。 我希望你可以帮助我。
P.S。 对不起我的英文
UPD 我试过这样做:
$headers = array(
'Content-Type: application/xml',
"Authorization: Basic ".base64_encode("$username:$password")
);
$process = curl_init($urlCountries);
curl_setopt($process, CURLOPT_HTTPHEADER, $headers);
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($process);
curl_close($process);
print_r($return);
现在我没有任何错误消息。但我也没有任何结果。
答案 0 :(得分:2)
我做到了。谢谢大家。我需要的一些端口在我的托管上关闭。所以也检查一下。
$user = 'username';
$pass = 'password';
$url = 'url';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERPWD,"$user:$pass");
curl_setopt($ch, CURLOPT_HTTPGET, 1);
$exec = curl_exec($ch);
curl_close($ch);