CURL 포스트(POST) 전송하기
보통은 GET 방식으로 전송을 하지만 간혹
파일을 올리거나 HTTP의 바디로 데이터를 보내야 되는 경우가 있습니다.
여기에선 파일 부분은 아니고 HTTP 바디로 보내는 POST 전송중 GET 방식과 같은 형태의 파라미터가 붙어 있는 형태의 데이토를 보내는 방식 입니다.
이런 방식은 POST에서 application/x-www-form-urlencoded 헤더에 보내줘야 합다.
if ( $test )
{
$USER_AGENT = '브라우저 정보';
$post_data = 'q=*&outmax=50&pg=' . $page . '&fsort=10,20,31§ion=bylNm&tabType=1';
$aHttpHd = Array();
$aHttpHd[] = 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8';
$aHttpHd[] = 'Accept-Encoding: gzip, deflate';
$aHttpHd[] = 'Accept-Language: ko,en;q=0.9,en-US;q=0.8';
$aHttpHd[] = 'Connection: keep-alive';
$aHttpHd[] = 'Accept: text/plain, */*; q=0.01';
$aHttpHd[] = 'Content-Length: ' . strlen($post_data);
$aHttpHd[] = 'Cookie: ele=SW15';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url_list);
curl_setopt($ch, CURL_HTTP_VERSION_1_1, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $aHttpHd);
curl_setopt($ch, CURLOPT_USERAGENT, $USER_AGENT);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_HEADER, 0); // 리턴값의 상단에 헤더를 붙여줄거냐 바디만 보여줄거냐 결정.
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); //
curl_setopt($ch, CURLOPT_POST, true);
$result_data = curl_exec($ch);
$aHeadInfo = curl_getinfo($ch);
}
다음엔 파일 전송 예제를 올리겠습니다.