6.2 CdifUtil.request

方法说明

提交一个HTTP请求

方法原型

CdifUtil.request( options, callback );

返回类型

方法描述

CdifUtil.request是request npm包的一个wrapper。用于提交一个HTTP请求,他的语法和request包中支持options选项的语法完全一致。用户可使用该方法提交一个REST API请求。

options对象中可接受以下参数:

CdifUtil.request CdifUtil.request

callback方法的原型如下: callback(error, res, body); error不为null时代表请求产生了错误,错误的详细信息包含在error.message

res为返回的完整HTTP响应数据

body为返回的HTTP响应数据消息体中的内容,通常为JSON格式的字符串。当request请求的opts使用JSON格式请求参数时,body为一个已被解析的JSON对象。body为返回的HTTP响应数据消息体中的内容,通常为JSON格式的字符串。当request请求的opts使用JSON格式请求参数时,body为一个已被解析的JSON对象。

代码范例

  1. 以下范例从args.input.name和args.input.cardID变量中接收请求参数,以拼接URL的方式发送一个REST API GET请求,并从返回的JSON数据中获取需要的信息:

    var qs = require(‘querystring’);
    var opts = {
        url: 'http://ali-bankcard4.showapi.com/bank2?'
    + 'acct_name=' + qs.escape(args.input.name)
    + '&acct_pan='+ args.input.cardID
    + '&needBelongArea=true',
        method: 'GET',
        headers: {
            Authorization: 'APPCODE 123456789'
        }
    };
    CdifUtil.request(opts, function(err, res, body) {
        //body中包含返回的JSON数据结果
        return callback(null, {output: {result: JSON.parse(body)}});
    });
    
  2. 以下范例从args.input.city变量中接收请求参数,以form提交的方式发送一个REST API POST请求,并从返回的JSON数据中获取需要的信息:

    var options = {
    url: 'http://route.showapi.com/1141-2',
      method: 'POST',
      form: {
        'showapi_appid': '28523',
        'showapi_sign': '78f046afa5e',
        'city': args.input.city
      }
    };
    
    CdifUtil.request(options, function(error, response, body) {
      return callback(null, {output: JSON.parse(body)});
    });
  3. 以下范例从args.input中接收请求参数,并使用node.js内置的qurystring模块,以拼接URL的方式发送一个REST API POST请求,并从返回的JSON数据中获取需要的信息:

    var qs = require(‘querystring’);
    var opts = {
    url: 'http://example.com/bank2?' + qs.stringify(args.input),
      method: 'POST',
      headers: {
        Authorization: 'APPCODE 123456789'
      }
    };
    
    CdifUtil.request(opts, function(err, res, body) {
      //body中包含返回的JSON数据结果
      return callback(null, {output: {result: JSON.parse(body)}});
    });
  4. 以下范例从args.input.name和args.input.gender变量中接收请求参数,以JSON提交的方式发送一个REST API POST请求,并从返回的JSON数据中获取需要的信息,注意CdifUtil.request()在请求为JSON格式时,返回结果默认为JSON,无需JSON.parse()返回的数据结果

    var options = {
    url: ' http://65.47.3.61:9527/json-api',
      headers: {
        'Authorization': '123456789',
      },
      method: 'POST',
      json: {
      name: args.input.name,
      gender: args.input.gender
      }
    };
    
    CdifUtil.request(options, function(error, response, body) {
    return callback(error, {output: body});
    });

    CdifUtil.request()同时可以支持formData的multipart/form-data提交方式,用于上传二进制文件,详见以上API文档。

错误信息

包含在callbackerror对象中。

同步/异步

异步操作