몇 가지 문제가 있습니다. 나는 정보 자원을 얻으려고 노력한다. 그리고 그 전에 기본 인증이 필요합니다. 여기 몇 가지 해결책을 찾았지만 작동하지 않습니다.기본 인증을 사용하여 HTTPS에서 file_get_contents하는 방법은 무엇입니까?
$username = "username";
$password = "password";
$url = "https://sapi.website.ru:3443/services/";
//GetCountries
$urlCountries = $url."?action=GetCountries";
$remote_url = $urlCountries;
$opts = array(
'http' => array(
'method' => "GET",
'header' => "Authorization: Basic ".base64_encode("$username:$password"),
'timeout' => 60
)
);
$context = stream_context_create($opts);
$file = file_get_contents($remote_url, false, $context);
print($file);
오류 : file_get_contents() : 잘못된 date.timezone 값 '유럽/모스 코우', 우리가 시간대 'UTC'을 선택 스트림을 열지 못했습니다 :이 한 연결은 또한
에서 시간 초과 당분간은 -하지만 작동 할 수도 있습니다. 안 그래요?
HTTPS 연결에 문제가있을 수 있습니다. API가있는 곳을 지원하고 URL, 로그인 및 암호 만 알려주세요. 그리고 그들은 "기본 인증 만하면됩니다"라고 말했습니다.
내가 처음으로 노력할 때 중요한 것을 놓친 것 같습니다. 도와 주시면 감사하겠습니다.
P. 미안 내 영어
UPD 내가 이렇게하려고 노력했습니다
$headers = array(
'Content-Type: application/xml',
"Authorization: Basic ".base64_encode("$username:$password")
);
$process = curl_init($urlCountries);
curl_setopt($process, CURLOPT_HTTPHEADER, $headers);
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($process);
curl_close($process);
print_r($return);
가 지금은 오류 메시지를 가지고 있겠지. 그러나 나는 어떤 결과도 얻지 못한다.
'file_get_contents()'와'stream_' 함수가'https'로 신뢰할 수 없다는 것을 발견했습니다. [컬] (http://stackoverflow.com/questions/2140419/how-do-i-make-a-request-using-http-basic-authentication-with-php-curl) 사용을 고려 했습니까? – GentlemanMax
나는 그것을 시도했다. UPD 내 질문. 이제는 오류 메시지가 없습니다. 그러나 나는 어떤 결과도 얻지 못한다. –