쏘댕

[curl] POST! 본문

공부/Linux

[curl] POST!

ssodang 2015. 12. 4. 17:21

API 결과 받는지 등등 테스트가 필요할 때 서버에 들어가서 아래와 같이 curl을 잘 날리는데

curl http://ssodang.tistory.com?param=test

어쩐지 POST로는 날려본적이 없었따..ㅎㅎ

그래서 찾다가 나같은 바보를 위한 꿀팁 발견!

출처: http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Tip/curl


프로토콜 디버깅

--verbose와 --trace, --trace-ascii를 이용해서 HTTP 데이터 통신 과정에 대한 상세정보를 얻을 수 있다. --verbose로 불충분하다면 --trace-ascii를 사용하자.

# curl --trace-ascii debug.dump http://www.test.co.kr/testpage

디버깅 정보는 debug.dump에 저장된다.


GET

데이터 요청을 위한 가장간단한 방법이다. URL만 명시하는 것으로 테스트 할 수 있다.

# curl http://www.joinc.co.kr
# curl http://www.joinc.co.kr?action=del&id=12345

POST

GET 방식은 URL만으로 정보를 보낼 수 있지만, POST 방식의 경우 메시지를 body에 담아서 보내야 한다. -d, --data 옵션을 이용해서 데이터를 보낼 수 있다. 혹은 파일의 내용을 POST 데이터로 보낼 수도 있다.

# curl -d "name=yundream&age=19&address=Seoul ... ..." http://www.joinc.co.kr/curltest.php
# curl -X POST http://192.168.57.3:5984/mywiki/ -d @curl.json -H "Content-Type: application/json"

파일 업로드

# curl -F upload=@dump.tar.gz -F "username=yundream" http://www.joinc.co.kr/curltest.php

User Agent

반응형 웹 페이지를 만들 경우 user-agent에 따른 테스트가 필요하다. --user-agent 옵션을 이용해서 user agent 값을 변경할 수 있다.

#  curl --user-agent "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" http://www.joinc.co.kr 

HTTP Header dump

"-D(--dump-header) <filename>"로 헤더 정보를 파일로 보낼 수 있다. filename을 "-"로 하면 헤더를 표준출력할 수 있다.

# curl -D header.txt http://www.joinc.co.kr
# cat header.txt
HTTP/1.1 200 OK
Date: Thu, 04 Jul 2013 01:54:40 GMT
Server: Apache/2.2.14 (Ubuntu)
Last-Modified: Fri, 22 Jun 2012 06:58:22 GMT
ETag: "c43e-76-4c30a286a7f80"
Accept-Ranges: bytes
Content-Length: 118
Vary: Accept-Encoding
Content-Type: text/html


'공부 > Linux' 카테고리의 다른 글

[linux][vi] 명령어  (0) 2014.11.12
Comments