function getCookies(){
request('http://google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(response.headers);
}
})
}
結果
{ date: 'Fri, 11 Dec 2015 07:15:50 GMT',
expires: '-1',
'cache-control': 'private, max-age=0',
'content-type': 'text/html; charset=EUC-KR',
p3p: 'CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info."',
server: 'gws',
'x-xss-protection': '1; mode=block',
'x-frame-options': 'SAMEORIGIN',
'set-cookie':
[ 'PREF=ID=1111111111111111:FF=0:TM=1449818150:LM=1449818150:V=1:S=Q3BB20FA6TkaZymd; expires=Thu, 31-Dec-2015 16:02:17 GMT; path=/; domain=.google.co.kr',
'NID=74=hnriWxk7N9jHtP5W0qgaxrwD1YuNKOmJg748ucxWilu9jaqHJVovfkYdvMr0tlp-VToID5cdTNDSXNXqr4M8umJ9traab67x2xZKfu3hJbsBRXeVvyiCOcwZ8bkXNcU4; expires=Sat, 11-Jun-2016 07:15:50 GMT; path=/; domain=.google.co.kr; HttpOnly' ],
'accept-ranges': 'none',
vary: 'Accept-Encoding',
connection: 'close' }
応答ヘッダーから「set-cookie」の値を取得したい。拾う方法は?クールでシンプルな方法はありますか? filedkeyからのステートメントに使用するか、または。私は何をすべきか?私がJavascriptを完全に初心者だとは知らない。ありがとう...
function getCookies(callback){
request('http://google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
return callback(null, response.headers['set-cookie']);
} else {
return callback(error);
}
})
}
次に電話することができます:
getCookies(function(err, res){
if(!err)
console.log(res)
})
一般にNodeと言えば、それが解決する一般的な問題である場合、誰かがnpmで何かを書いて公開するという問題に既に行っています。
たとえば、 request-cookies !
特に、toJSON()
メソッドが最も役立つと思いますが、確かにパッケージのドキュメントはかなり軽いです。いくつかの実際の例については、 tests を確認できます。
そうは言っても、リクエストにはすでにクッキーに関するいくつかの広範なドキュメントがあります-これはあなたのニーズに合っているかもしれません:
Cookieはデフォルトで無効になっています(そうでない場合、以降のリクエストで使用されます)。 Cookieを有効にするには、
jar
をtrue
に設定します(defaults
またはoptions
のいずれか)。
( readme の一番下までスクロールして、Cookieに関するビットを見つけます)。
@brandonscriptが言ったように、リクエストCookieを使用する方法は次のとおりです。
var request = require('request');
var Cookie = require('request-cookies').Cookie;
request.get('https://google.com', function(err, response, body) {
var rawcookies = response.headers['set-cookie'];
for (var i in rawcookies) {
var cookie = new Cookie(rawcookies[i]);
console.log(cookie.key, cookie.value, cookie.expires);
}
});
グーグルからのサンプル出力:
NID 98=FfYHDY9-40JzE78qxIpaMugODJ4y4zJIydluKUffvh1lDs70DYk7vrlmw2ca2Gd54ywx5WV44Utz9EdLOdFE6IcW2BUGfiVpHZx3kWh69tT_eWlXZTiFkRo7TVr_9WWH 2017-09-08T04:22:41.000Z
これを試してください:
npmインストールタフクッキー
const request = require("request");
const tough = require('tough-cookie');
const Cookie = tough.Cookie;
request.get(options, (error, response, body) => {
const cookie = Cookie.parse(response.headers['set-cookie'][0]);
console.log(cookie.cookieString());
});
cookie
の内容を気にせず、単に使用したい場合は、このクリーンなアプローチを試してください。
var request = require('request');
var j = request.jar();
var request = request.defaults({jar:j});
request('http://www.google.com', function () {
request('http://images.google.com', function (error, response, body){
// this request will will have the cookie which first request received
// do stuff
});
});