Это сводит меня с ума, поэтому я надеюсь на некоторую помощь здесь.
Я пытаюсь получить токен аутентификации после размещения информации о пользователе на странице XML с использованием HTTP Basic Auth через PHP. Токен должен быть возвращен обратно в XML. Я использую локон для этого.
Хотя я не получаю абсолютно никаких ошибок при запуске PHP, я просто не могу получить токен. Я просто получаю пустую страницу.
Вот мой PHP-код:
<?php
$username ='abc';
$password = 'xyz';
$user_token = base64_encode($username . '-' . $password);
$target_url = 'https://url_example/users/sign_in.xml';
$ch = curl_init($target_url);
curl_setopt($ch, CURLOPT_POST, true);
$headers = array('Authorization=Basic ' . $user_token);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$response_data = curl_exec($ch);
$xml = simplexml_load_string($response_data);
print_r($xml);
if (curl_errno($ch)> 0){
die('There was a cURL error: ' . curl_error($ch));
} else {
curl_close($ch);
}
?>
это должно быть: не —
попробуй это
$process = curl_init("https://url_example/users/sign_in.xml");
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $headers));
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($process);
curl_close($process);
Других решений пока нет …