2

stackexchange API から json データを取得しようとしています。OAuth コードとアクセス トークンの受信は正常に機能します。しかし、実際のデータ取得エンドポイントを呼び出すと、応答は奇妙に見えます。おそらくエンコードされているか、類似しています。

リクエストは次のようになります。

var client = requestjson.newClient('https://api.stackexchange.com');
    client.get("/2.2/me/comments?order=desc&sort=creation&site=stackoverflow&access_token="+myToken+"&key="+key, function(err, res, body) {
        console.log(body);
    })

そして、応答本文は次のようになります。

i�)�)QEJ�a��Ml�d4���20�c����M���]�v5/AZ�m��z    �C��`�~���*ͳ`Fh'����<M��k��J������J��>       &��ȗ����m��o>U�n�鴬�x=M��}1��m��'����ϻ��#
��zDn���n=ϳh[��QY��M���uv�*����&?;��S��х�V���'{mJ?  �8/�W�q���͓��+��qK��������X�9X~��g�������΁YrVY���B���X1#�`E

試してみましJSON.parseたが、コンソールにエラーがスローされます。

4

1 に答える 1

3

ここで答えを見つけました: node.js - gzip/deflate 圧縮による簡単な http リクエスト

以下を追加しました。

var reqData = {
    url: "https://api.stackexchange.com/2.2/me/comments?order=desc&sort=creation&site=stackoverflow&access_token="+myToken+"&key="+key,
    method:"get",
    headers: {'Accept-Encoding': 'gzip'}
}
var gunzip = zlib.createGunzip();
var json = "";
gunzip.on('data', function(data){
    json += data.toString();
});
gunzip.on('end', function(){
    console.log(JSON.parse(json));
});
request(reqData)
    .pipe(gunzip)
于 2014-12-09T19:02:25.937 に答える