Drakma 使用時の注意事項

Drakma - A Common Lisp HTTP client を使うときの注意事項。

  • *drakma-default-external-format* で external-format を指定しておく。
  • text/* 以外の Content-Type をテキストとして扱いたいときは、*text-content-types* に追加する。
  • Content-Length は省略すると文字数でカウントされるため、バイト数で明示的に指定する。
(use-package :drakma)

;; UTF-8
(setq *drakma-default-external-format* :utf-8)

;; application/atom+xml をバイナリではなくテキストとして扱う。
(pushnew (cons "application" "atom+xml") *text-content-types*
         :test #'equal)

;; Content-Length はバイトサイズで指定する。
(http-request "http://www.example.com/"
              :method :post
              :content post-data
              :content-length (length (sb-ext:string-to-octets
                                       post-data :external-format :utf-8)))