PHP에서의 CURL TIMEOUT , POST 방식 전송에 대해서
2011. 10. 1. 16:49ㆍDevelopment/Tip
아는 분들도 많을테지만, CURL 관련해서 2가지를 적어볼까 합니다.
1) TIMEOUT
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $sUrl);
curl_setopt($curl, CURLOPT_USERAGENT, 'CURL request');
curl_setopt($curl, CURLOPT_TIMEOUT, 5);
if($method == 'post') {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $aReq);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$sRes = curl_exec($curl);
$sHttpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
위는 CURL 을 요청소스입니다.
TIMEOUT 옵션을 대부분 1개만 사용중이실텐데,
명확한 처리를 위해서 CURLOPT_CONNECTTIMEOUT 옵션을 추가해주시면 좋습니다.
CURLOPT_TIMEOUT => curl 실행에 대한 timeout
CURLOPT_CONNECTTIMEOUT => 서버연결에 대한 timeout
-----------------------
2) POST 방식전송시 유의사항
POST 방식으로 전송시 위 소스에서처럼 array형 변수를 넘겨도 PHP에서는 정상적으로 받아서 처리하지만
jsp등 다른 언어에서는 처리가 되지않는 경우가 있습니다.
jsp등 다른 언어에서는 처리가 되지않는 경우가 있습니다.
단순히 array로 넘기게되면 Multipart/form data 로 전달되게 되기때문에, array형 변수를 그대로 넘기기보다는 http_build_query 함수등을 통하여 쿼리스트링형태로 변환하여 전달해주시는게 좋습니다.
'Development > Tip' 카테고리의 다른 글
안드로이드폰용 크롬에서 개발자도구 사용 (2) | 2012.05.15 |
---|---|
안드로이드 웹브라우저의 elements 터치 버그 (2) | 2012.04.30 |
윈도우용 tail (0) | 2012.04.04 |
PHP filemtime 함수의 캐쉬문제 (0) | 2011.09.06 |
putty 에 탭 기능을 써보자, PuTTY Connection Manager (2) | 2010.05.02 |
web cheat sheet (0) | 2009.04.15 |