Node.js 調用 restful webservice

來源:互聯網
上載者:User

標籤:

 

如何構建一個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輸出如下:

[[email protected] 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"}]

 

Node.js 調用 restful webservice

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.