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的主要内容,如果未能解决你的问题,请参考以下文章
带有 Angular 的 NodeJs API 不返回 JSON 结果