NodeJS HttpGet 到带有 JSON 响应的 URL

Posted

技术标签:

【中文标题】NodeJS HttpGet 到带有 JSON 响应的 URL【英文标题】:NodeJS HttpGet to a URL with JSON response 【发布时间】:2013-12-16 18:40:04 【问题描述】:

我是 Node 开发的新手,我正在尝试使用带有 JSON 响应的 RESTful 协议进行服务器端 API 调用。我已经阅读了API documentation 和这个SO post。

我试图从轨道总线中提取并在 JSON 输出中返回数据的 API。我对如何使用实际 URL 中的所有参数和选项发出 HTTP GET 请求感到困惑。甚至可以通过浏览器或使用“curl”命令访问 API 及其响应。 http://developer.cumtd.com/api/v2.2/json/GetStop?key=d99803c970a04223998cabd90a741633&stop_id=it

如何编写 Node 服务器端代码以向具有 URL 中的选项的资源发出 GET 请求并解释 JSON 响应?

提前致谢!

【问题讨论】:

【参考方案1】:

request 现在已弃用。建议您使用替代方案:

本机 HTTP/S,const https = require('https'); node-fetch axios got superagent

Stats comparision Some code examples

原答案:

请求模块使这非常容易。从 npm 将 request 安装到你的包中,然后你可以发出 get 请求。

var request = require("request")

var url = "http://developer.cumtd.com/api/v2.2/json/GetStop?" +
    "key=d99803c970a04223998cabd90a741633" +
    "&stop_id=it"

request(
    url: url,
    json: true
, function (error, response, body) 

    if (!error && response.statusCode === 200) 
        console.log(body) // Print the json response
    
)

您可以在 npm 上找到请求文档:https://npmjs.org/package/request

【讨论】:

感谢@matt-esch 的快速回复!我阅读了“请求”npm 页面上的示例,他们提到响应以类似于“var resp = request(...)”的方式存储,但是当我尝试使用“var parsed = JSON”解析结果时.parse(resp)” 我收到一个错误“SyntaxError: Unexpected token o”。我试过寻找答案,但似乎没有任何效果。谢谢! 在我的示例中,将 json 设置为 true 会将解析后的 JSON 作为正文返回。示例显示 resp 的返回值是一个流,而不是您可以解析的值。无论哪种方式,结果都会异步返回。 只是想知道,对于您提供的代码,我怎么知道它是什么请求?即发布、获取、删除或放置?我没有看到代码指定它...谢谢

以上是关于NodeJS HttpGet 到带有 JSON 响应的 URL的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs 从 http 请求块中读取 JSON 数据

NodeJS HTTP请求未按顺序执行

如何使用 Nodejs 上传带有 json 的图像

带有 Angular 的 NodeJs API 不返回 JSON 结果

发送带有 json 的 html 文件并让浏览器重新加载该 json 而无需重新加载页面

将 JSON 响应转换为 pdf - NodeJS