raw POST data

Programming/PHP 2015. 9. 8. 23:38

보통 HTTP 통신에서 페이지 요청(Request)시 GET 이나 POST 방식을 많이 사용한다.
POST 방식의 폼 데이터 전송시 헤더에는 변수1=값1&변수2=값2... 의 형태로 구성이 되는데,
PHP 에서는 이 값들을 $_POST 같은 전역 배열로 파싱된 데이터를 얻어낼 수 있다.

 

하지만 쿼리스트링 형태(변수1=값1&변수2=값2...) 가 아닌 json 이나 xml 등의 데이터를 POST 방식으로 보내게 되면,
$_POST 전역 배열은 파싱된 결과를 저장하므로 데이터를 저장할 수 없다.
이런 raw POST 데이터를 받기 위해서 $HTTP_RAW_POST_DATA 를 사용할 수 있다.
하지만 최신 버전(5.6이상)에서는 위 전역 변수를 추천하지 않고,
Request Body로부터 raw data를 읽을 수 있는 php://input 사용을 권장한다.
enctype="multipart/form-data" 에서는 사용할 수 없다.

 

<? echo file_get_contents("php://input"); ?>

 

// result
{"os":"Android","cc":"KR","lc":"ko","type":"ongoing","currencyCode":"KRW","lastEvaluateKey":-1}

 

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret