2016-09-28 2 views
1

PHP를 사용하여 file_get_contents 명령을 통해 원격 서버에서 JSON을 가져옵니다. 저는 여기에 사용되는 코드의 조각은 다음과 같습니다PHP를 통해 인증 헤더를 첨부하는 방법은 무엇입니까?

  1. 이죠 내가 같은 헤더 JSON 파일을 얻을 수있었습니다 사용 :
    $opts = array(
        'https'=>array(
        'method'=>'GET', 
        'header'=>'Accept-language: en\r\n' . 
           'Authorization: MAC ["3","ios2.5.0","123","123abc","123=","abc="]\r\n' . 
           'User-Agent: abc/1.1.1 iOS/10.0.2 iPhone/iPhone7,1\r\n' 
    ) 
    ); 
    
    $context = stream_context_create($opts); 
    
    $file = file_get_contents('https://www.google.com/v11/file?search=ios&with=users%2Cfiles%2Cquestions', false, $context); 
    
    echo $file; 
    

    내가 빠른 디버깅을했다.
  2. 다른 URL에서 다른 json을 시도했지만 작동합니다.
  3. 로컬 파일을 시도했지만 작동합니다.
+2

이동'\ 연구 \ n'을 따옴표로 -'언어 수락 : EN '을. "\ r \ n". – labue

+0

@nogad 그것은 Google이 아닙니다. 데모 목적으로 URL을 변경했습니다. –

+0

@labue 작동하지 않았습니다. –

답변

1

무엇이 file_get_contents인지 이해해야합니다. 이 명령은 서버에서 파일을 가져 오기위한 요청입니다.이 경우 서버에서 하나의 단일 단계와 마찬가지로 https://www.google.com/v11/file/index.html을 요청합니다. url이 원점을 확인하기 위해 헤더를 사용하는 것 같으므로, 서버 구성 요소가 file_get_contents 요청의 출력을 허용하도록 설정되지 않았 음을 의미하는 대신 aUax 요청 일 수 있습니다. 대신 cURL 요청을 수락합니다.

그래서 당신은 사용할 수 있습니다

curl_exec() 
관련 문제