node.jsのhttpclientとして使いやすいrequestモジュールですが、少しハマったのでメモしておきます。
何をやりたいかというと、単純にPOSTでどっかにデータを送りたいわけです。
受け口は今回はペライチのPHPプログラムです。
最初、こんな感じのコードを書いていました。
var request = require('request');
request.post({
  uri: 'https://localhost/dump.php',
  body: 'hoge=foo&aaa=bbb'
}); | 
ただし、PHP側の$_POST変数には一向に入る気配がありません。
それを下記のように送信ヘッダのcontent-typeを明示的に指定してあげれば正常に受け取ることが出来ました。
var request = require('request');
request.post({
  uri: 'https://localhost/dump.php',
  body: 'hoge=foo&aaa=bbb',
  headers: {
    'content-type': 'application/x-www-form-urlencoded'
  }
}); | 
とりあえず、簡単にメモ。
追記:2011.11.13 12:38
PHPのソースを直接見たところ、POSTの場合、下記の二つのcontent-typeの場合のみ変数に格納しているようでした。
- application/x-www-form-urlencoded
 - multipart/form-data