Post がうまくいかない件の調査
はてなダイアリーの日記投稿ページの form タグをコピーして action だけ別のところにすげかえてリクエストの dump をとってみた。
見事に Content-length: 0 だ。これで投稿させろというのは確かに無理だ。
Content-length 0 ってのは、send の失敗じゃなくてデータを作るところの問題だろう。
w3m on Mona
POST / HTTP/1.0 User-Agent: w3m/0.5.2+cvs-1.1001 Accept: text/html, text/*;q=0.5, image/* Accept-Encoding: Accept-Language: en;q=1.0 Host: 10.12.0.37:8181 Referer: http://10.12.0.37/ Content-type: multipart/form-data; boundary=------------------------------111-1073000904-10730767040 Content-length: 0
w3m on Linux
POST / HTTP/1.0 User-Agent: w3m/0.5.2 Accept: text/html, text/*;q=0.5, image/*, application/*, audio/*, multipart/* Accept-Encoding: gzip, compress, bzip, bzip2, deflate Accept-Language: ja;q=1.0, en;q=0.5 Host: 10.12.0.37:8181 Referer: http://10.12.0.37/ Content-type: multipart/form-data; boundary=------------------------------166016743936169318400 Content-length: 1536 --------------------------------166016743936169318400 Content-Disposition: form-data; name="dummy" 1 --------------------------------166016743936169318400 Content-Disposition: form-data; name="mode" enter --------------------------------166016743936169318400 Content-Disposition: form-data; name="rkm" l0KlQD5N6QzmRaYcB1HhXQ --------------------------------166016743936169318400 Content-Disposition: form-data; name="timestamp" --------------------------------166016743936169318400 Content-Disposition: form-data; name="year" 2010 --------------------------------166016743936169318400 Content-Disposition: form-data; name="month" 06 --------------------------------166016743936169318400 Content-Disposition: form-data; name="day" 02 --------------------------------166016743936169318400 Content-Disposition: form-data; name="title" --------------------------------166016743936169318400 Content-Disposition: form-data; name="edit" 保存する --------------------------------166016743936169318400 Content-Disposition: form-data; name="body" Hello, World --------------------------------166016743936169318400 Content-Disposition: form-data; name="image"; filename="" Content-Type: application/octet-stream --------------------------------166016743936169318400 Content-Disposition: form-data; name="imagetitle" --------------------------------166016743936169318400 Content-Disposition: form-data; name="tburl" --------------------------------166016743936169318400--
追記
enctype="multipart/form-data"のときにのみ起きるようだ。勘が冴えてる。
追記2
form_write_data の fprintf が temp file ではなくて stdout を向いているように見える。