私はノードコンソールアプリケーションを持っています。私のアプリケーションでは、私はサードパーティのWebサービスにいくつかのデータを送信しようとしています。私は正常にPOSTMAN経由でサードパーティWebサービス経由でデータを追加できます。Node.js +サードパーティサービスへのAPIリクエストの送信
ヘッダ
api-key
{my key}
Content-Type
application/json
ボディ、私は今、ノードを介して、このデータを送信して複製しようとしています
{
"value": [
{
"@operation": "send",
"id":"1",
"name":"Hello",
"position": { "type": "Point", "coordinates": [90.000000, 0.000000] },
"tags":["january", "friends"]
}
]
}
:私の郵便配達で、私はこのような要求を設定しています。これを実行しようとする試みで、私は次のように書いている:
var ops = {
host: 'example.com',
path: '/api/upload?version=2',
method: 'POST',
headers: {
'api-key':'[my key]',
'Content-Type': 'application/json'
}
};
var r = https.request(ops, (res) => {
res.on('data', (d) => {
console.log(res.statusCode);
console.log(res.statusMessage);
});
});
var data = {
"value": [
req.body.record // req is passed in via express
]
};
console.log(data);
r.write(JSON.stringify(data));
r.end();
ラインconsole.log(data);
が実行されると、私はコンソールウィンドウに以下を参照してください。
{ value:
[ { '@operation': 'send',
id: '1',
name: 'Hello',
position: [Object],
tags:[Object]
} ] }
私がもしわかりませんこれは印刷上の問題または実際の問題です。いずれにせよ、私の本当の問題は、私がリクエストを送信すると、コンソールウィンドウに次のものも表示されることです:
400
Bad Request
そのデータは正しいように見えます。 Nodeから送信しようとすると、なぜ私が400を得ているのかわかりません。それでも、それはPostmanからうまく動作します。それは引用符と関係がありますか?私はJSON.stringifyがそれを処理したと思った。
私は間違っていますか?
私が間違っている場合は私を修正しますが、それは400人なので、私の側のエラーを意味しません。この場合、APIは重要ではありませんか?あるいは私は400について何かを誤解しています。 –
投稿しているデータがAPIが期待しているものではない(おそらく)ため、APIから400を受け取っています。レスポンス(恐らく 'response.body')には詳細がありますので、そこにあるものを見てください。これはあなたのためにこれを解決するのに役立ちます。 – floatingLomas