每天学习一点点,成功增加一大步

NodeJs 发起 HTTP 请求

NodsJS zhanghui 94℃

在 NodeJs 的开发中,有时需要后台去调用其他服务器的接口,这个时候,就需要发送 HTTP 请求了。有个简单的工具可以用,Simplified HTTP request client,可以比较方便的模拟请求。

安装

npm install --save request

GET 请求

var request = require('request');
request('http://www.baidu.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body) // Show the HTML for the baidu homepage.
  }
})

POST 请求

1、application/json 方式

request({
    url: url,
    method: "POST",
    json: true,
    headers: {
        "content-type": "application/json",
    },
    body: JSON.stringify(requestData)
}, function(error, response, body) {
    if (!error && response.statusCode == 200) {
    }
}); 

2、 application/x-www-form-urlencoded

request.post({
    url: 'http://service.com/upload',
    form: { key: 'value' }
}, function (error, response, body) {
    if (!error && response.statusCode == 200) {
    }
})

3、multipart/form-data

var formData = {
    // Pass a simple key-value pair
    my_field: 'my_value',
    // Pass data via Buffers
    my_buffer: new Buffer([1, 2, 3]),
    // Pass data via Streams
    my_file: fs.createReadStream(__dirname + '/unicycle.jpg'),
};
request.post({
    url: 'http://service.com/upload',
    formData: formData
}, function (error, response, body) {
    if (!error && response.statusCode == 200) {
    }
})

如上所示,formData 可以直接放 key-value 格式的数据,也可以放 buffer ,或者是通过流描述的文件。

参考

GitHub: https://github.com/request/request
pass JSON to HTTP POST Request

转载请注明:隨習筆記 » NodeJs 发起 HTTP 请求

喜欢 (0)