2012-11-13 32 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

相關問題