我正在尝试将API集成到我的网站上,这需要我发布以base64编码的授权字段。但是,这是说我做的不正确。我想知道是否是因为我没有正确发布该字段。到目前为止,这是我所做的。
$pro = '00000000000';
$host = 'http://www.saiasecure.com/irsec/getimginfo1.aspx?refNumber='.$pro;
$authorization = 'username : password';
$authorization = base64_encode($authorization);
$post = array(
'Authorization' => $authorization
);
$ch = curl_init($host);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$return = curl_exec($ch);
curl_close($ch);
$xml = new SimpleXMLElement($return);
try
{
print_r($xml);
} catch(SoapFault $ex){
$ex->getMessage();
echo $ex;
}
这些是开发人员提供的API说明。
这是我从API得到的响应:
有人知道我在做什么错吗?这让我发疯了!
答案 0 :(得分:1)
文档说,该值是用户ID,“:”和密码的串联。这可能使措辞混乱。您应该删除这些空格,以编写代码:
$authorization = 'username:password';
该代码的C#
示例表明它需要base64编码:
$authorization = base64_encode($authorization);
根据Xorifelse的输入,让curl为您设置标头更简单:
curl_setopt($ch, CURLOPT_USERPWD, $authorization);