• Node.js 调用 restful webservice


    如何构建一个restful web service参考原来的文章

    http://www.cnblogs.com/ericnie/p/5212748.html

    直接用原来的项目编译好像有问题,此处耗费1个半钟头,新建立一个项目就完全OK了 :-(

    写一个callrest.js,代码如下:

    var http = require('http');
    var equal = require('assert').equal;

    var username = 'falcon';
    var password = '';
    var _auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64')

    var options = {
    host: '192.168.0.101',
    port: 7001,
    path: '/RestfulApplication-testproject-context-root/resources/testproject/Persons',
    method: 'GET',
    headers:{
    'accept': '*/*',
    'content-type': "application/xml",
    'accept-encoding': 'gzip, deflate',
    'accept-language': 'en-US,en;q=0.9',
    'user-agent': 'nodejs rest client'
    }
    };

    var req = http.request(options, function (res) {
    console.log('STATUS: ' + res.statusCode);
    equal(200, res.statusCode);
    console.log('HEADERS: ' + JSON.stringify(res.headers));

    res.on('data',function (chunk) {
    console.log('BODY: ' + chunk);
    });
    });

    req.on('error', function(e) {
    console.log('problem with request: ' + e.message);
    });


    req.end();

    之前在设置'content-type'"application/atom+xml",结果得到错误

    STATUS: 415,查了后是返回的格式不支持,然后修改为application/json或者application/xml就通过了,因为后端restful代码写的是

    application/json和application/xml

    执行node callrest.js输出如下:

    [weblogic@ericnie nodejs-cluster]$ node callrest.js


    STATUS: 200
    HEADERS: {"connection":"close","date":"Fri, 14 Oct 2016 03:30:31 GMT","content-length":"981","content-type":"application/json"}
    BODY: [{"firstname":"Firstname 0","hiredate":"2016-10-14T11:30:31.124+08:00","id":0,"lastname":"Last 0"},{"firstname":"Firstname 1","hiredate":"2016-10-14T11:30:31.124+08:00","id":1,"lastname":"Last 1"},{"firstname":"Firstname 2","hiredate":"2016-10-14T11:30:31.124+08:00","id":2,"lastname":"Last 2"},{"firstname":"Firstname 3","hiredate":"2016-10-14T11:30:31.124+08:00","id":3,"lastname":"Last 3"},{"firstname":"Firstname 4","hiredate":"2016-10-14T11:30:31.124+08:00","id":4,"lastname":"Last 4"},{"firstname":"Firstname 5","hiredate":"2016-10-14T11:30:31.124+08:00","id":5,"lastname":"Last 5"},{"firstname":"Firstname 6","hiredate":"2016-10-14T11:30:31.124+08:00","id":6,"lastname":"Last 6"},{"firstname":"Firstname 7","hiredate":"2016-10-14T11:30:31.124+08:00","id":7,"lastname":"Last 7"},{"firstname":"Firstname 8","hiredate":"2016-10-14T11:30:31.124+08:00","id":8,"lastname":"Last 8"},{"firstname":"Firstname 9","hiredate":"2016-10-14T11:30:31.124+08:00","id":9,"lastname":"Last 9"}]

  • 相关阅读:
    Java中static、final、static final的区别(转)
    Google的JSON风格指南
    Google代码风格指南
    Java中的final关键字(转)
    Java的不定参数(eg:Object...)(转)
    Java Enum枚举的用法(转)
    Java中包装类型和基本类型的使用场景(什么时候使用包装类型)(转)
    Java常用的集合类(转)
    使用Swagger生成Spring Boot REST客户端(支持Feign)(待实践)
    Java搜索引擎选择: Elasticsearch与Solr(转)
  • 原文地址:https://www.cnblogs.com/ericnie/p/5959785.html
Copyright © 2020-2023  润新知