0

POST リクエストを送信しようとしています。これは Web フォームを使用していません。そのままの状態で、次のようになります。

POST /echo HTTP/1.1
Host: dpsw.info
Connection: keep-alive
Transfer-Encoding: chunked

One
Two

NodeJS http を使用して、このスクリプト..

var options = {
  hostname: 'dpsw.info',
  port: 80,
  path: '/echo',
  method: 'POST'
};

var req = require('http').request(options, function(res) {
  res.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});

req.on('error', function(e) {
  console.log('problem with request: ' + e.message);
});

// write data to request body
req.write('One\nTwo');
req.end();

ただし、スニファで表示すると、データは次のようになります。

POST /echo HTTP/1.1
Host: dpsw.info
Connection: keep-alive
Transfer-Encoding: chunked

7
One
Two
0

Request モジュールも時々使用しますが、その中に生データを入れる簡単な方法がわかりませんでした。フォームのみ:{}

4

1 に答える 1

2

ドキュメントから:

「Content-length」ヘッダーを送信すると、デフォルトのチャンク エンコーディングが無効になります。

チャンク転送エンコーディングは明らかに望まないので、それが追加の数値の由来であるため、Content-length自分で設定する必要があります。ただし、多くの (ほとんどの) サーバーは、チャンク転送エンコーディングを問題なく認識します。

于 2013-09-17T14:48:20.523 に答える