在 PHP 中 POST HTTP Basic Auth 之后获得 XML 结果

Getting an XML result after POST HTTP Basic Auth in PHP

这让我发疯所以希望在这里得到一些帮助。

我希望在通过 PHP 使用 HTTP 基本身份验证将用户信息发布到 XML 页面后获得身份验证令牌。令牌应该在 XML 中返回。我正在为此使用 curl。

虽然我在 运行 和 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);