続:Common Lispで使えるHTTPクライアントって何がいいんだろう
(drakma:http-request "http://www.rubyist.net/~rubikitch/" :force-binary nil :external-format-in nil) WARNING: Problems determining charset (falling back to binary): :ISO-2022-JP is not known to be a name for an external format. #(60 63 120 109 108 32 118 101 114 115 105 111 110 61 34 49 46 48 34 32 101 110...) 200 ((:DATE . "Fri, 13 Jul 2007 18:10:37 GMT") (:SERVER . "Apache/2.0.54 (Debian GNU/Linux) DAV/2 SVN/1.1.4 PHP/4.3.10-22 mod_ruby/1.2.5 Ruby/1.8.2(2005-04-11) mod_ssl/2.0.54 OpenSSL/0.9.7e") (:LAST-MODIFIED . "Fri, 22 Jun 2007 19:07:11 GMT") (:ETAG . "\"20408ad-2a7f-5ecbf5c0\"") (:ACCEPT-RANGES . "bytes") (:CONTENT-LENGTH . "10879") (:CONNECTION . "close") (:CONTENT-TYPE . "text/html; charset=iso-2022-jp")) #<PURI:URI http://www.rubyist.net/~rubikitch/> #<FLEXI-STREAMS::FLEXI-LATIN-1-IO-STREAM {B0EC659}> T "OK"
DRAKMAの場合、日本語だとバイナリとみなされる…。force-stringがあるわけでもない。日本人には使いものにならないということかorz
CLikiのweb clientのページにはいろいろな種類のHTTP clientが並べられている。
CL-HTTPはnon-freeだから論外。s-http-clientではhttpsはLispWorksでしかサポートされていないのでダメ。
trivial-httpだと日本語ページを読み込むと
decoding error on stream #<SB-SYS:FD-STREAM for "a constant string" {D3B8431}> (:EXTERNAL-FORMAT :EUC-JP): the octet sequence (227 129) cannot be decoded. [Condition of type SB-INT:STREAM-DECODING-ERROR]
なんてエラーが出てどうしようもない。