Skip to content

node-fetchvsexcon

MIT 241 10 8,860
553.6 million (month) Dec 28 2012 3.3.2(2023-11-30 14:10:12 ago)
1,172 19 20 MIT
Oct 31 2009 3.3 million (month) 1.4.2(2026-03-20 19:18:25 ago)

node-fetch is a lightweight library that provides a fetch()-like API for making HTTP requests in Node.js. It is a light-weight implementation of the Fetch API, which is mostly compatible with the browser's version.

node-fetch is primarily known as almost identical package fetch() is included in web browsers so it shares the same use common API. It's great starting point for people coming from front-end environment.

Excon is a Ruby library for making HTTP requests. It is designed to be fast and efficient, and is often used as a building block for other Ruby libraries and frameworks.

One of the main features of Excon is its support for persistent connections, which allows it to reuse the same connection for multiple requests, reducing the overhead of establishing a new connection for each request.

Excon also supports streaming requests and responses, which allows you to read or write data to the server incrementally, without having to load the entire response into memory at once.

Highlights


popular

Example Use


```javascript const fetch = require('node-fetch'); // fetch supports both Promises and async/await fetch('http://httpbin.org/get') .then(res => res.text()) .then(body => console.log(body)) .catch(err => console.error(err)); const response = await fetch('http://httpbin.org/get'); // for concurrent scraping Promise.all can be used const results = await Promise.all([ fetch('http://httpbin.org/html'), fetch('http://httpbin.org/html'), fetch('http://httpbin.org/html'), ]) // POST requests await fetch('http://httpbin.org/post', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'John Doe' }), }) // Proxy use: const agent = new https.Agent({ rejectUnauthorized: false, proxy: { host: 'proxy.example.com', port: 8080 } }); await fetch('https://httpbin.org/ip', { agent }) // setting headers and cookies const headers = new fetch.Headers(); headers.append('Cookie', 'myCookie=123'); headers.append('X-My-Header', 'myValue'); await fetch('https://httpbin.org/headers', { headers }) ```
```ruby require 'excon' # GET requests response = Excon.get('https://jsonplaceholder.typicode.com/posts/1') puts response.body puts response.status puts response.headers # POST requests response = Excon.post('https://jsonplaceholder.typicode.com/posts', :body => { :title => 'foo', :body => 'bar', :userId => 1 }.to_json, :headers => { 'Content-Type' => 'application/json' } ) puts response.body ```

Alternatives / Similar


Was this page helpful?