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