2016-09-02 6 views
0

を返し、Mailchimp 3.0 APIに私の要求をうまく通過します:のNode.js HTTP GET Mailchimpへの要求がエラー

しかし
curl --request GET \ 
--url 'https://us12.api.mailchimp.com/3.0/' \ 
--user 'anystring:APIKEY' 

、私はAPIへのリクエストを行うたびNode.jsのを使用して、私は次のエラー受け取る:

Got error: connect ECONNREFUSED 127.0.0.1:80 

を私は、私は何かが足りないか、私の.jsファイル内不一致何かを持ってるものが何であるかについての任意のアイデアを想定していますか?ノードコードは以下である:

"use strict"; 
/* globals require, console */ 
var http = require('http'); 


var options = { 
    url: 'https://us12.api.mailchimp.com/3.0/', 
    headers: { 
     'Authorization': 'anystring:APIKEY', 
     'Content-Type': 'application/json', 
    } 
}; 

http.get(options, (res) => { 
    console.log(`Got response: ${res.statusCode}`); 
    // consume response body 
    res.resume(); 
}).on('error', (e) => { 
    console.log(`Got error: ${e.message}`); 
}); 

はEDIT:キャッチされない例外を使用して、以下を返す:

Error: connect ECONNREFUSED 127.0.0.1:80 
    at Object.exports._errnoException (util.js:856:11) 
    at exports._exceptionWithHostPort (util.js:879:20) 
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1053:14) 

EDIT 2:の固定部。代わりにhostの代わりにurlを使っていました。ここではその部分の正しいコードは次のとおりです。

var options = { 
    host: 'https://us12.api.mailchimp.com/3.0/', 
    headers: { 
     'Authorization': 'anystring:APIKEY', 
     'Content-Type': 'application/json', 
    } 
}; 

今、私はトレースバックGot response: 400の代わりに、私が引っ張って探していたデータを受信して​​います。

+1

これをしようと言うものコンソールディスプレイ '.on( 'uncaughtException'、関数(ERR){ にconsole.log(ERR); });奇妙なトレースバックをある' –

+1

。あなたは 'https://us12.api.mailchimp.com/3.0/'へのリクエストをしていますが、ローカル環境への接続が失敗したという応答を受け取ります。あなたはプロキシですか?あなたはどのように設定されているWebサーバーの設定を確認する必要があります。 – slopeofhope

答えて

0

:設定する必要が両方のホストとパスのオプション、

  1. I-AM-NOT-レジェンドが言及@として正しく
  2. 私はこれらの二つのことをやったら、リクエストは期待通りに働いていたapikey

に変更する必要がanystring文字列。完全なコードは以下のとおりです。APIKEYを実際のAPIキーで切り替えて、アカウントの対応するデータセンター(APIキーの最後にあります)でus12を切り替えてください。

"use strict"; 
/* globals require, console */ 
var http = require('http'); 


var options = { 
    host: 'us12.api.mailchimp.com', 
    path: '/3.0/', 
    headers: { 
     'Authorization': 'apikey APIKEY', 
     'Content-Type': 'application/json', 
    } 
}; 

http.get(options, (res) => { 
    console.log(`Got response: ${res.statusCode}`); 
    res.on('data', (chunk) => { 
    console.log(`BODY: ${chunk}`); 
    }); 
    // consume response body 
    res.resume(); 
}).on('uncaughtException', function (err) { console.log(err); }); 
0

documentationによると、オプションにはurlプロパティはありません。 ホストとパスを指定する必要があります。

オプションのオブジェクトは次のようになります。

私が変更されるために必要ないくつかのこと、それが働いて持っているように見えるよし
var options = { 
host: 'https://us12.api.mailchimp.com', 
path : '/3.0/' 
headers: { 
    'Authorization': 'anystring:APIKEY', 
    'Content-Type': 'application/json', 
}; 
関連する問題