2017-04-11 11 views
0

https/httpモジュールを使用してGETメソッドでデータを送信するにはどうすればよいですか? POSTではすべてが機能します。Node.js http - サーバーにGETデータを送信する

まずコードをGET):

var querystring = require('querystring'), 
    protocol = require('https'); 

var options = { 
    host: 'httpbin.org', 
    path: 'get', 
    method: 'GET', 
    headers: {}, 
    port: 443 
}; 

var data = querystring.stringify({ 
    limit: 3 
}); 

Object.assign(options.headers, { 
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 
    'Content-Length': Buffer.byteLength(data) 
}); 

var req = protocol.request(options, response => { 
    response.setEncoding('utf8'); 
    var end = ''; 
    response.on('data', data => end += data); 
    response.on('end',() => console.log(end)); 
}); 
req.write(data); 
req.end(); 

応答:

{ 
    "args": {}, 
    "headers": { 
    "Connection": "close", 
    "Content-Length": "7", 
    "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", 
    "Host": "httpbin.org" 
    }, 
    "origin": "31.0.120.218", 
    "url": "https://httpbin.org/get" 
} 

セカンドコードPOST、私は唯一のオプションオブジェクトを置き換え):

var options = { 
    host: 'httpbin.org', 
    path: 'post', 
    method: 'POST', 
    headers: {}, 
    port: 443 
}; 

応答:

{ 
    "args": {}, 
    "data": "", 
    "files": {}, 
    "form": { 
    "limit": "3" 
    }, 
    "headers": { 
    "Connection": "close", 
    "Content-Length": "7", 
    "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", 
    "Host": "httpbin.org" 
    }, 
    "json": null, 
    "origin": "31.0.120.218", 
    "url": "https://httpbin.org/post" 
} 

私は今、私は私が間違っているのかわからない、いくつかの助けのために非常に感謝するでしょう。

+0

実際にはnode.jsの問題ではありません。 GETの場合、HTTP仕様の一部ではないため、本文にデータを投稿しません。 GETメソッドは通常、クエリーに使用されます。 URLを介してクエリパラメータを送信します。お役に立てれば。 – Quy

答えて

2

あなたの問題は、getでは、@Quyが指摘したように、get要求に本文がないということです。サーバがどのように設定されているかを理解していないと、私はそうするように見ています。

var data = querystring.stringify({ 
    limit: 3 
}); 

var options = { 
    host: 'httpbin.org', 
    path: 'get?' + data, 
    method: 'GET', 
    headers: {}, 
    port: 443 
}; 
+0

うん、それは動作します;) –

関連する問題