2008/04/29

[Common Lisp][Drakma] Drakma 使用時の注意事項

はてなと同じ内容だけど Muse で書いて投稿してみるテスト。

Drakma を使うときの注意事項。

  • *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)))

Muse では * が強調指定なのでスペシャル変数がめんどうなことになる。literal タグで囲まないといけない。

<literal>*drakma-default-external-format*</literal>

1 件のコメント:

Yoshinori Tahara さんのコメント...

* のエスケープは
=*drakma-default-external-format*=
でもいいのかな。