2016-12-09 7 views
0

imgur API(httpモジュールでも試されました)で動作するようにnodeJS https.requestまたはhttps.getを取得するのに苦労します。 https.requestのコードは次のとおりです。nodeJSパラメータでimgur APIにアクセスすると、AJAXでは動作しますが、nodeJSでは動作しません。

var https = require('https') 

var imgurAPIOptions = { 
    hostname : 'api.imgur.com', 
    path: '/3/gallery/search/time/1/?q=cat', 
    headers: {'Authorization': 'Client-ID xxxxxxxxxxxx'}, 
    json: true, 
    method: 'GET' 
}; 

https.request(imgurAPIOptions,function(err,imgurResponse){ 
    if (err) {console.log('ERROR IN IMGUR API ACCESS') 

} else { 

    console.log('ACCESSED IMGUR API'); 
} 

}); 

エラーメッセージconsole.logが返されます。 jQueryのAJAXを使用して同等のクライアント側の要求のための(作業)のコードはここ

です:

$(document).ready(function(){ 

    $.ajax({ 
     headers: { 
    "Authorization": 'Client-ID xxxxxxxxxxxx' 
    }, 
    url: 'https://api.imgur.com/3/gallery/search/time/1/?q=cat', 
    success:function(data){ 
     console.log(data) 
    } 
    }) 

}); 

ここで誰が働いimgurのAPIを得ることにどんな経験がありましたか?私は何が欠けていますか?

+0

「エラー」の内容は何ですか? – dan

+0

コンソール上で切り取られた素晴らしいオブジェクト/配列。私に数分を与えると、私は試してそれを抽出します。 – Satki

+0

[docs](https://nodejs.org/dist/v4.7.0/docs/api/https.html#https_https_request_options_callback)によると、 'https.request'のコールバックの最初のパラメータはエラーではなくデータです。 'err'のオブジェクトはAPIレスポンスですか? – dan

答えて

0

https docsをご覧ください。

リクエストコールバックの最初のパラメータは、エラーではなく応答です。エラーをチェックする場合は、要求のerrorイベントをリスンすることができます。

リクエストがデータを受信すると、それを出力できます。

var https = require('https'); 

var options = { 
    hostname: 'api.imgur.com', 
    path: '/3/gallery/search/time/1/?q=cat', 
    headers: {'Authorization': 'Client-ID xxxxxxxxxxxx'}, 
    method: 'GET' 
}; 

var req = https.request(options, function(res) { 
    console.log('statusCode:', res.statusCode); 
    console.log('headers:', res.headers); 

    res.on('data', function(d) { 
    process.stdout.write(d); 
    }); 
}); 

req.on('error', function(e) { 
    console.error(e); 
}); 

req.end(); 
+0

私は実際に.end()を持っていました。含まれている、上記のスニペットにそれを置くことを忘れてしまった。私はあなたの構文を試してみましょう、それが動作するかどうかを参照してください。 – Satki

+0

うん、それは動作します。私はちょうど、 '通常の'関数(エラー、データ)コールバック構造を使用せず、よく知られていないAPIを使用してリクエストによって投げ捨てられたと考えてください。 – Satki

+0

問題ありません。 [要求](https://github.com/request/request)というパッケージがあり、これはかなり人気があり、状況によっては少し使いやすくなっています。そのパッケージは 'function(err、data)'パターンに従います。 – dan

関連する問題