zoukankan      html  css  js  c++  java
  • 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"}]

  • 相关阅读:
    Recommended Books for Algo Trading in 2020
    Market Making is simpler than you think!
    Top Crypto Market Makers of 2020
    Top Crypto Market Makers, Rated and Reviewed
    爬取伯乐在线文章(五)itemloader
    爬取伯乐在线文章(四)将爬取结果保存到MySQL
    爬取伯乐在线文章(三)爬取所有页面的文章
    爬取伯乐在线文章(二)通过xpath提取源文件中需要的内容
    爬取伯乐在线文章(一)
    爬虫去重策略
  • 原文地址:https://www.cnblogs.com/ericnie/p/5959785.html
Copyright © 2011-2022 走看看