2011-10-12 4 views
1

헤더와 함께 원시 서버 응답을 가져와야합니다. 이는 gzip되거나 압축 된 내용이 여전히 압축되어야 함을 의미합니다. 나는받은 것을 변경하지 않기를 바란다.PHP - 원시 서버 응답 가져 오기?

PHP로 가능합니까?

내가 곱슬 곱슬와 시도했지만 그 작동하지 않는 것, 나는 0으로 이러한 설정 :

   CURLOPT_HTTP_CONTENT_DECODING => 0, 
      CURLOPT_HTTP_TRANSFER_DECODING => 0, 

하지만 도움을.

나는 fsockopen으로 시도했지만 자동으로 압축이 풀리는 것으로 보입니다.

다른 건 없나요?

편집 :

$options = array(CURLOPT_URL => 'http://www.example.com/', 
      CURLOPT_CONNECTTIMEOUT => 20, 
      CURLOPT_HEADER => 1, 
      CURLOPT_RETURNTRANSFER => 1, 
      CURLOPT_FOLLOWLOCATION => 1, 
      CURLOPT_USERAGENT => $user_agent, 
      //CURLOPT_CUSTOMREQUEST => 'HEAD', 
      //CURLOPT_NOBODY => true, 
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
       //CURLOPT_HTTP_CONTENT_DECODING => 0, 
       //CURLOPT_HTTP_TRANSFER_DECODING => 0, 
      CURLOPT_BINARYTRANSFER => 1, 
      CURLOPT_HTTPHEADER => array('Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
             'Accept-Language' => 'en-us', 
             'Accept-Encoding' => 'gzip, deflate')); 

감사 :이 내 모든 컬 헤더입니다.

답변

0

fsockopen은 자동으로 압축을 풀지 않지만 자신의 HTTP 클라이언트를 롤업하는 경우 gzip으로 처리 할 응답을받을 준비가되었음을 서버에 알려야하며, 그렇지 않으면 서버가 압축되지 않은 응답을 보내 게됩니다.

요청에 Accept-Encoding 헤더를 포함하면됩니다 (예 :

Accept-Encoding: compress, gzip 
+0

감사합니다. 다른 사람이 관심을 가지고있는 경우에 대비해주세요. http://be.php.net/manual/en/function.fsockopen.php#73581 – Wesley