Skip to content

faradayvsexcon

MIT 60 8 5,927
5.9 million (month) Dec 19 2009 2.14.1(2026-02-07 15:17:15 ago)
1,172 19 20 MIT
Oct 31 2009 3.3 million (month) 1.4.2(2026-03-20 19:18:25 ago)

Faraday is a Ruby gem that provides a simple and flexible interface for making HTTP requests. It allows you to create a Faraday connection object, which you can use to send requests and receive responses.

Faraday abstracts away the details of the underlying HTTP client library, so you can use it with different libraries such as Net::HTTP, HTTPClient, typhoeus and others.

Since Faraday can adapt many other HTTP clients it's very popular choice in web scraping.

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.

Example Use


```ruby # GET requests response = Faraday.get('http://httpbingo.org') put response.status put response.headers put response.body # or use a persistent client session: conn = Faraday.new( url: 'http://httpbin.org/get', params: {param: '1'}, headers: {'Content-Type' => 'application/json'} ) # POST requests response = conn.post('/post') do |req| req.params['limit'] = 100 req.body = {query: 'chunky bacon'}.to_json end ```
```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?