0
次のjavascriptコードを実行しようとしています。nodejs - yahoo.comの場合、バイナリデータを返すrequest.get(url)
request = require('request')
request.get('https://www.yahoo.com',function(err,res,body){ console.log(err ? err.message : body) })
しかしhtml
文字列が期待されているのに対し、それはバイナリデータを記録しています。
最初の引数を別のURL、たとえばhttps://www.google.com
と置き換えた場合、同じコードはhtml
という応答を返します。
私は、それは両方のケースで正しいHTMLレスポンスを返すコード
require('open-uri')
puts open('https://www.yahoo.com').read
以下とRubyで同じことを試してみました。
nodejsのrequest
パッケージを使用している間に何かが見当たりません。
私たちはライブラリが単独で処理することを期待している:D は問題を解決しました。しかし、それはなぜGoogleと一緒に働いているのですか? –
私はあなたのリクエストのヘッダ 'Accept-encoding'を見ていますが、yahooは見ません。ヘッダをデバッグすると、 'gzip:true'がヘッダに' accept-encoding:gzip、deflate'を追加することがわかります。 –