블로그 이미지
lilla

Recent Comment

Recent Trackback

Archive

calendar

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
  • 267,847total
  • 0today
  • 12yesterday
2010.05.09 03:55 linux
cURL
명령행 기반 웹 요청 도구. 특히 REST 애플리케이션을 개발 테스트시에 유용하게 사용할 수 있다.

홈페이지 : http://curl.haxx.se/
cURL Tutorial
GUI 기반으로 REST 애플리케이션 테스트 해보고자 한다면 http://rest-client.googlecode.com/
 

GET
curl -v 기타 옵션 : 디버깅을 위해 요청과 응답 헤더까지 모두 표시
curl http://www.xxx.com : 일반 GET 요청

-I : 헤더만 가져오기
-i : 헤더와 바디까지 가져오기
 

POST
curl -d "param1=xxx¶m2=yyyy¶m3=%20OK%20" www.hotmail.com/when/junki.cgi

URL 인코딩된 파라미터를 앞에 쓰고, 그 뒤에 POST를 처리하는 주소를 넣는다.
파라미터는 무조건 먼저 인코딩 된 상태여야 한다.
POST의 Content-Type 은 application/x-www-form-urlencoded 이다.
 

파일 업로드
curl -F upload=@파일명 -F press=OK www.xxx.com/blog/post.cgi

-F 폼필드명=@파일명
-F 폼필드명=폼필드값
Content-Type 은 multipart/form-data
 

PUT
curl -T 업로드할파일명 www.uploadhttp.com/receive.cgi
 

DELETE
curl -X DELETE www.data.com/resources/223

-X 는 요청을 보내는 method를 직접 지정해주는 옵션이다.
 

Authentication
Basic Auth : curl -u username:password www.secrets.com
간단한 Tomcat 컨텍스트 리로드 스크립트

curl -u TomcatAdmin계정:비밀번호 localhost:8080/manager/html/reload?path=/
서버의 인증 방식에 따라 다음 옵션 가능

--ntlm
--digest
--negotiate
--anyauth
프록시 인증 : curl -U proxyuser:proxypassword curl.haxx.se

--proxy-ntlm
--proxy-digest
 

Referer 지정
curl -e http://리퍼러주소 daniel.haxx.se
 

User Agent 지정
curl -A "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" http://www.rollinglist.com
 

Redirect
curl -L www.somesite.com
curl은 기본적으로 Redirect Header를 무시한다.
-L 을 붙이면 redirect 요청을 따라서 다음 페이지로 간다.
-d/-F 옵션을 통해 POST/PUT 요청등을 보내고 나서 redirect가 실행된다면 첫번째 요청은 POST/PUT으로 처리하고, 리다이렉트는 GET으로 처리한다.
 

Cookies
curl -b "name=Daniel" www.cookiesite.com

Cookie key=value 쌍을 서버로 전송한다.
curl -D headers_and_cookies www.cookiesite.com

headers_and_cookies 파일로 헤더 정보다 모두 저장된다. 헤더 정보에는 쿠키 정보도 포함되어 있다.
curl -b stored_cookies www.cookiesite.com

stored_cookies 파일에 저장된 쿠키 정보를 서버로 전송한다.
curl -b 존재하지않는파일명 -L www.cookiesite.com

서버에서 전송한 쿠키를 리다이렉트하면서 서버측에 재전송한다.
curl -b cookies.txt -c newcookies.txt www.cookiesite.com

-b cookies.txt 는 이미 존재하는 쿠키 파일(Mozilla 호환)을 읽어서 서버에 전송하는 것이고,
-c newcookies.txt 는 새로 새성된 쿠키를 파일로 저장하는 것이다.
 

기타 파라미터
-X 메쏘드

-X 뒤에 지정된 메소드 GET/POST/PUT/DELETE/HEAD/PROPFIND 등으로 요청을 수행한다.
-H "Content-Type: text/xml"

헤더 값을 지정한다.
-H "Host:"

헤더 값을 삭제한다.



------------------------------------------------------------------------------------------
사용예제 .....

// encoding 형태로 변환해서 보내기
curl -d "USER_ID=aaa&PASSWORD=test&HP_NO=01011111111&PROC_DATE=20090311&SERVER_NM=TEST&SMS_MSG=test" http://www.aaa.co.kr/aaa.php3

// 아스키값그대로 보내기
curl --data-ascii "USER_ID=aaa&PASSWORD=test&HP_NO=01011111111&PROC_DATE=20090311&SERVER_NM=TEST&SMS_MSG=한글전송테스트 메세지" http://www.aaa.co.kr/aaa.php3

// https 사용 아스키값그대로 보내기
curl --data-ascii "USER_ID=aaa&PASSWORD=test&HP_NO=01011111111&PROC_DATE=20090311&SERVER_NM=TEST&SMS_MSG=한글전송테스트 메세지" -L -k https://www.aaa.co.kr/aaa.php3
posted by linuxian lilla