Light HTTP

Light-http 是一個輕量級的Library ,讓你可以用很簡單、快速的方式建立一個 HTTP/HTTPS 的 Request,而且還同時支援同步與異步請求,同步的功能是使用 Promise Pattern ,透過 Promise 可以讓程式更容易維護。

不只是 Node.js (io.js) 可以使用 light-http ,light-Http 也支援一般常用的瀏覽器,例如 IE8 ~ , Chrome, Firefox。

安裝 Light HTTP

使用 NPM 指令就可以馬上試用 light-http

npm install light-http


這裡提供一些簡單的 light-http 使用範例.

Asynchronous HTTP Request.

    var http = require('light-http');
    var header = {"user-agent": "Mozilla/5.0 xx"};
    var url = "https://www.google.com.tw";

    // Method GET
    http.get(url, {"key":"value"}, header, function(response) {
        xxx
    });

    // Method POST
    http.post(url, {"key":"value"}, header, function(response) {
        xxx
    });

Synchronous - Using Promise

    var http = require('light-http');
    var header = {"user-agent": "Mozilla/5.0 xx"};
    var url = "https://www.google.com.tw";

    // Method GET
    http.get(url, {"key":"value"}, header)
        .then(function(response) {
            xxx
        });

    // Method POST
    http.post(url, {"key":"value"}, header)
        .then(function(response) {
            xxx
        });

File Upload

    var http = require('light-http');
    var header = {"user-agent": "Mozilla/5.0 xx"};
    var url = "https://www.google.com.tw";

    http.addFile("fileData", "/www/var/file.txt");
    http.addFileContent("fileData", "file.txt", "content");

    http.post(url, {"key":"value"}, header)
        .then(function(response) {
            xxx
        });

How to make a raw HTTP request?

    var http = require('light-http');
    var host = "www.google.com.tw";
    var port = 80;
    var path = "/";
    var cookie = 'SID=; HSID=; SSID=jjj; APISID=;';
    var msg = [
    "GET " + path + " HTTP/1.1",
    "host: " + host,
    "cookie: " + cookie,
    "\r\n"].join("\r\n");

    http.rawRequest(host, port, msg)
        .then(function (resp) {
            console.log(resp);
        });