2012-11-13 2 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 이외의 것을 찾고 있는데 젠드 등 어떤 환경도 사용하지 않고있다. (젠드 등의 예제를 보았지만 그 중 하나를 사용하지 않고있다.)

+0

'cURL' 잘못 무엇입니까? –

+0

이 PHP 코드를 API와 동일한 서버에서 실행하고 있습니까? PHP 코드를 직접 불러내는 것이 가장 좋을 것입니다. –

+0

모든 PHP 설치에서 cURL을 사용할 수있는 것은 아닙니다. –

답변

1

SSL 또는 프록시 지원이 필요하지 않은 경우 file_get_contents()을 스트림 컨텍스트에 사용할 수 있습니다. 이 here

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

더 : 스트림 컨텍스트는 HTTP 헤더를 포함 할 수 있습니다.

+0

프록시 문제가 없지만 서버에 SSL이 필요합니다. http://www.example.com을 https://www.example.com으로 교체 할 수 없습니까? – user1765002

+0

PHP가 설치된 openssl 라이브러리가있는 경우에만. –

+0

나는 서버 관리자와 함께 점검했고 그는 openssl이 표준 아파치 릴리스에 내장되어 있다고 말했다. 그러나 나는 http가 여전히 사용 가능하다고 믿는다. – user1765002