사전 준비사항

  1. 새로운 clojure 프로젝트를 생성한다.
  2. clj-http 모듈 사용을 위해서 project.clj 파일의 dependencies 부분에 아래와 같이 추가해준다. (버전은 참고사이트에서 최신 버전을 확인하자)
    (defproject projectname "0.1.0-SNAPSHOT"
      :description "FIXME: write description"
      :url "http://example.com/FIXME"
      :license {:name "Eclipse Public License"
                :url "http://www.eclipse.org/legal/epl-v10.html"}
      :dependencies [ [org.clojure/clojure "1.6.0"]
                      [clj-http "2.2.0"] ])
    

기본 HTTP 요청하기 예제

(require '[clj-http.client :as client])

(client/get "http://httpbin.org/ip")

(println "done")

POST 요청하기 예제

(require '[clj-http.client :as client])

(println (client/post "http://httpbin.org/post"
  {:body "{\"text\": \"test string\"}"
            :headers {"Content-Type" "application/json"}}))

(println "done")

응답

  • client/get 혹은 client/post를 호출했을 때, 응답은 다음과 같은 형식이 되며 실제 HTML은 :body ~ 부분에 오게된다.

    {:orig-content-encoding ..,
     :trace-redirects ..,
     :request-time ..,
     :status ..,
     :headers
     {"Server" ..,
      "Via" ..,
      .. },
     :body .. }
    

  • :body 부분만 추출하기 위해서는 아래와 같이 호출하면 된다.

    (:body (client/get "http://httpbin.org/ip"))
    

참고 사이트

<테스트 환경>
 - OS : Windows 7
 - Leiningen 버전 : 1.0.0
,