繁体   English   中英

在PHP中进行POST HTTP基本身份验证后获取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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM