我在我的本地PHP服务器上试过这个代码......一切都很完美.. 但是当我将此脚本上传到Web托管服务器时,身份验证不起作用。有人可以解释为什么这个脚本不适用于webserver?
"Authorization: Basic " . base64_encode("$username:$password")
脚本:
$url = 'http://xxx.xxx.xxx.xxx:9080/apex/api/query?filtername=UNITSUMM&PARM_CONTAINER='.$contrNo.'&operatorId=BIG&complexId=KSA&facilityId=DMM&yardId=RRY';
$context = stream_context_create(array(
'http' => array(
'header' => "Authorization: Basic " . base64_encode("$username:$password")
)
));
$data = @file_get_contents($url, false, $context);
$convert = explode("\n", $data);
答案 0 :(得分:1)
如果您可以发布您正在查看的任何错误消息,或者您可以在错误日志中找到它,将会很有帮助。
可能是您的托管服务提供商不允许到端口9080的传出连接,或者根据其他一些条件阻止您的连接。
如果您打印出base64_encode(“$ username:$ password”)的值,您可能可以调试脚本 - 可能其中一个变量没有设置为正确的值。