回答編集履歴

2

codeを追記

2017/03/13 11:36

投稿

yosuke_furukawa
yosuke_furukawa

スコア390

test CHANGED
@@ -35,3 +35,77 @@
35
35
  ```
36
36
 
37
37
 
38
+
39
+ 追記:
40
+
41
+
42
+
43
+ 以下の方法で Content-Length さえ渡せば body を渡せることが確認できました。
44
+
45
+
46
+
47
+
48
+
49
+ ```javascript
50
+
51
+ const http = require('http');
52
+
53
+
54
+
55
+ const body = 'hello server';
56
+
57
+ let options = {
58
+
59
+ host : 'localhost',
60
+
61
+ path : '/delete',
62
+
63
+ method : 'DELETE',
64
+
65
+ headers : {"Content-Type" : "application/json", "Content-Length": body.length}
66
+
67
+ };
68
+
69
+
70
+
71
+ const server = http.createServer((req, res) => {
72
+
73
+ let chunk = '';
74
+
75
+ req.on('data', (d) => chunk += d);
76
+
77
+ req.on('end', () => {
78
+
79
+ res.end('hello client ' + chunk);
80
+
81
+ });
82
+
83
+ });
84
+
85
+
86
+
87
+ server.listen(0, () => {
88
+
89
+ const port = server.address().port;
90
+
91
+ options.port = port;
92
+
93
+ const req = http.request(options, (res) => {
94
+
95
+ // hello client hello server
96
+
97
+ res.pipe(process.stdout);
98
+
99
+ });
100
+
101
+
102
+
103
+ req.write(body)
104
+
105
+ req.end();
106
+
107
+ })
108
+
109
+
110
+
111
+ ```

1

誤字修正 

2017/03/13 11:36

投稿

yosuke_furukawa
yosuke_furukawa

スコア390

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  このため、多くのweb サーバでは GET/DELETE でbodyを付けることに対応していないことが多いです。
10
10
 
11
- そして node.js の場合は、 http-parser で DELETE に body がない場合は無視します。
11
+ そして node.js の場合は、 http-parser で DELETE に body があろうがかろうが、Content-Lengthがない場合は無視します。
12
12
 
13
13
 
14
14
 
@@ -33,3 +33,5 @@
33
33
  };
34
34
 
35
35
  ```
36
+
37
+