今天在项目中遇到获取物流信息的需求,于是查阅了快递100,快递鸟,聚合数据的文档,从零开始获取物流信息,这里主要介绍聚合数据
在前端界面的的开发中直接将其提供的API与测试地址使用Ajax进行请求,结果,毫无疑问的报错,跨域请求被拦截,报 500 的错。所以需要服务器中转一下,
聚合数据提供的请求地址:http://v.juhe.cn/exp/index
参数;key=你的key&com=公司名称&no=订单编号
查询这个接口支持的快递公司的com步骤:
第二步
第三步
这样就获取到了。
聚合数据首次注册提供免费的100次使用。
全局安装express-generator
$ npm install express-generator -g
创建一个命名为express的应用-安装依赖—开启服务器。
$ express Express
$ cd Express
$ npm install
$ npm start
这样一个应用的骨架 就搭建好了,
但是要处理http请求还需要安装一个包;
npm install request --save
修改routes下的index.js
var express = require('express');
var router = express.Router();
var request = require("request");
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('aaa', { title: 'Express' });
request("http://v.juhe.cn/exp/index?key=51d27c76a89af4ce142aeea7fbaf8260&com=jd&no=73663098707",function (err,req,body) {
if(!err && req.statusCode == 200){
console.log(body)
console.log(2)
}
})
});
module.exports = router;
request还可以发送post请求
request({
url: url,
method: "POST",
json: true,
headers: {
"content-type": "application/json",
},
body: data
}, function(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // 请求成功的处理逻辑
}
涉及到跨域的时候需要对express进行配置
//设置跨域访问
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By",' 3.2.1');
res.header("Content-Type", "application/json;charset=utf-8");
next();
});