2012-11-13 31 views
0

我在Apache服务器上启用了基本身份验证。服务器托管着我实现的API,我想要从我的PHP脚本中调用此API。我得到尽可能找出如何创建一个标头:使用Apache进行基本身份验证

$user = 'my_name_api'; 
$pwd = 'xxxxxxxxx'; 
$auth_string = $user . ':' . $pwd; 
$auth_b64 = base64_encode($auth_string); 
$header = 'Authorization: Basic ' . $auth_b64; 

如何在我的API调用中包含$标头?我正在寻找cURL以外的东西,而且我没有使用像zend等任何环境(看到Zend等的一些例子,但我没有使用这些)。

+0

出了什么问题'cURL'? –

+0

您是否在与API相同的服务器上运行此PHP代码?你最好直接调用php代码,而不是做全面的本地http调用。 –

+0

cURL不适用于所有PHP安装。 –

回答

1

如果您不需要SSL或代理支持,则可以将file_get_contents()用于流上下文。流上下文可以包含HTTP标头:

$opts = array 
(
    'http'=>array 
    (
    'method' => "GET", 
    'header' => "Authorization: ..." 
) 
); 
$context = stream_context_create($opts); 
$file = file_get_contents('http://www.example.com', false, $context); 

更多关于此here

+0

我没有代理问题,但服务器需要SSL。我无法使用https://www.example.com替换http://www.example.com吗? – user1765002

+0

只有在安装有openssl lib的情况下才能使用PHP。 –

+0

我检查了服务器管理员,他说openssl内置于标准的apache发行版中,但是我相信http仍然可用 – user1765002

相关问题