0

node.js を使用して http リクエストを送信し、baidu マップ API を呼び出そうとしています。私のコードは次のとおりです。

URL を貼り付けてブラウザを直接使用すると、適切な形式で適切な応答が得られます。

しかし、ノードを使用してリクエストを送信すると、問題が発生します。

var request = require('request');
  request(
    { method: 'GET',
      uri: 'http://api.map.baidu.com/place/v2/suggestion?query=beijing&region=131&output=json&ak=****hLQKu9ap9fPq5N1ExF1Kk7xe5Eah'
    }
  , function (error, response, body) {

      res.json({
        res:response
      })
    }
  )

一方、URL を変更すると、次のような中国語が含まれます。

http://api.map.baidu.com/place/v2/suggestion?query=北京理工大学&region=北京&output=json&ak=****hLQKu9ap9fPq5N1ExF1Kk7xe5Eah

node.js では、ステータス コード 400 と完全に間違った応答が返されます。

4

1 に答える 1

2

あなたのuriをencodeURIでエンコードする必要があります

uri: encodeURI('http://api.map.baidu.com/place/v2/suggestion?query=北京理工大学&region=北京&output=json&ak=3104hLQKu9ap9fPq5N1ExF1Kk7xe5Eah')
于 2016-05-21T14:00:33.323 に答える