All Projects → lil-js → http

lil-js / http

Licence: MIT license
Tiny, embeddable HTTP client with simple API for the browser

Programming Languages

javascript
184084 projects - #8 most used programming language
Makefile
30231 projects
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to http

electron-request
Zero-dependency, Lightweight HTTP request client for Electron or Node.js
Stars: ✭ 45 (+114.29%)
Mutual labels:  xhr, ajax, http-client
angular-progress-http
[DEPRECATED] Use @angular/common/http instead
Stars: ✭ 43 (+104.76%)
Mutual labels:  xhr, ajax
Video Downloader Deploy
Video Downloaders (you-get, youtube-dl, annie) One-Click Deployment Batch. || 视频下载器 (you-get, youtube-dl, annie) 一键配置脚本。
Stars: ✭ 178 (+747.62%)
Mutual labels:  embeddable, embed
Resource Loader
A middleware-style generic resource loader built with web games in mind.
Stars: ✭ 364 (+1633.33%)
Mutual labels:  xhr, ajax
Saber
⚔️ Saber, PHP异步协程HTTP客户端 | PHP Coroutine HTTP client - Swoole Humanization Library
Stars: ✭ 866 (+4023.81%)
Mutual labels:  ajax, http-client
Wretch
A tiny wrapper built around fetch with an intuitive syntax. 🍬
Stars: ✭ 2,285 (+10780.95%)
Mutual labels:  ajax, http-client
Thwack
A tiny modern data fetching solution
Stars: ✭ 268 (+1176.19%)
Mutual labels:  xhr, ajax
cute-http
一个基于axios封装的更易用的http库。
Stars: ✭ 18 (-14.29%)
Mutual labels:  ajax, http-client
Ironwing
universal, framework agnostic, transport layer
Stars: ✭ 17 (-19.05%)
Mutual labels:  xhr, ajax
Xhr.js
🌎 xhr.js is a library(< 2Kb) to make AJAX/HTTP requests with XMLHttpRequest.
Stars: ✭ 12 (-42.86%)
Mutual labels:  xhr, ajax
Rext
🎈A lightweight (< 5kb gzipped) and Promise-supported HTTP request library, for all browsers.
Stars: ✭ 14 (-33.33%)
Mutual labels:  xhr, ajax
Restclient
🦄 Simple HTTP and REST client for Unity based on Promises, also supports Callbacks! 🎮
Stars: ✭ 675 (+3114.29%)
Mutual labels:  ajax, http-client
Unfetch
🐕 Bare minimum 500b fetch polyfill.
Stars: ✭ 5,239 (+24847.62%)
Mutual labels:  ajax, tiny
Busker
An extremely simple web framework.
Stars: ✭ 161 (+666.67%)
Mutual labels:  embeddable, tiny
Redux Requests
Declarative AJAX requests and automatic network state management for single-page applications
Stars: ✭ 330 (+1471.43%)
Mutual labels:  ajax, http-client
embed
An embeddable, tiny Forth interpreter with metacompiler.
Stars: ✭ 80 (+280.95%)
Mutual labels:  embeddable, tiny
Gretchen
Making fetch happen in TypeScript.
Stars: ✭ 301 (+1333.33%)
Mutual labels:  http-client, tiny
Ky
🌳 Tiny & elegant JavaScript HTTP client based on the browser Fetch API
Stars: ✭ 7,047 (+33457.14%)
Mutual labels:  http-client, tiny
Atomic
A tiny, Promise-based vanilla JS Ajax/HTTP plugin with great browser support.
Stars: ✭ 526 (+2404.76%)
Mutual labels:  xhr, ajax
Axios Tutorial
axios实例应用及源码剖析 - xhr篇 (走心教程)
Stars: ✭ 219 (+942.86%)
Mutual labels:  xhr, ajax

lil'-http Build Status Stories in Ready Code Climate Gitter chat

Tiny, lightweight, full featured HTTP client for the browser.

Namehttp
Version0.1.17
Size3 KB / 1 KB (gzipped)
EnvironmentBrowser

Features

  • Simple fully configurable API
  • Support any HTTP verb
  • Built-in error handling
  • Binary response handling support
  • Content-Type autodiscovery
  • Support auth credentials
  • Request progress status report
  • Support passing custom headers
  • Transparent support for CORS (in IE)
  • Simple request state handling based on callback
  • Transparent payload JSON serializer

Installation

Via Bower

bower install lil-http

Via Component

component install lil-js/http

Or loading the script remotely

<script src="//cdn.rawgit.com/lil-js/http/0.1.17/http.js"></script>

Environments

  • Chrome >= 5
  • Firefox >= 3
  • Safari >= 5
  • Opera >= 10
  • IE >= 9

Usage

You could fetch de module via require() if it's available. Otherwise, global fallback will be used, exposed via lil.http

Sample GET request
lil.http.get('/sample.json', {
  auth: { user: 'Tom', password: 'p@s$w0rD' }
  headers: { 'X-Version': '0.1.0' }
}, function (err, res)) {
  if (err) throw new Error('Cannot perform the request: ' + err.status)
  if (res.status === 200) {
    console.log(res.data)
  }
})
Sample POST request
lil.http.post('/register', {
  data: { user: 'Tom' },
  headers: { 'API-Key': '8c1c4180-36b5-11e4-8510-0800200c9a66' }
}, function (err, res)) {
  if (err) throw new Error('Cannot register: ' + err.status)
  if (res.status === 200) {
    console.log('Registered!')
  }
})

Config options

  • url string - Server request URL
  • data mixed - Payload data to send as body request. See MDN for more information
  • params object - Map of key-value query string params
  • headers object - Map of strings representing HTTP headers to send to the server
  • timeout number - Request maximum timeout in milliseconds. Default to 30 seconds
  • auth object - Authentication credentials to the server. Object must have the user and password properties with string values
  • withCredentials boolean - Whether to set the withCredentials flag on the XHR object. See MDN for more information
  • method string - Request HTTP method. Default to GET
  • responseType string - Define how to handle the response data. Allowed values are: text, arraybuffer, blob or document

Response/error object

  • data mixed - Body response. If the MIME type is JSON-compatible, it will be transparently parsed
  • status number - HTTP response status code
  • headers object - Response headers
  • xhr object - Original XHR instance
  • error mixed - Error info, usually an Error instance (in case that an error happens)

API

http(url, options, cb, [ progressCb ])

http.get(url, options, cb, [ progressCb ])

http.post(url, options, cb, [ progressCb ])

http.put(url, options, cb, [ progressCb ])

http.delete(url, options, cb, [ progressCb ])

http.patch(url, options, cb, [ progressCb ])

http.head(url, options, cb, [ progressCb ])

http.defaults

Type: object

Default client config object

http.defaultContent

Type: string Value: text/plain

Default Content-Type request header value

http.VERSION

Contributing

Wanna help? Cool! It will be appreciated :)

You must add new test cases for any new feature or refactor you do, always following the same design/code patterns that already exist

Development

Only node.js is required for development

Clone the repository

$ git clone https://github.com/lil-js/http.git && cd http

Install dependencies

$ npm install

Generate browser bundle source

$ make browser

Run tests

$ make test

License

MIT © Tomas Aparicio

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].