Skip to content

guzzlevshttparty

MIT 34 13 23,447
536.5 thousand (month) Nov 14 2011 7.10.0(2025-08-23 22:36:01 ago)
5,889 8 43 MIT
Jul 25 2009 2.2 million (month) 0.24.2(2026-01-14 22:54:36 ago)

Guzzle is a PHP HTTP client library that makes it easy to send HTTP requests and trivial to integrate with web services. It allows you to send HTTP/1.1 requests with various methods like GET, POST, PUT, DELETE, and others.

Guzzle also supports sending both synchronous and asynchronous requests, caching, and even has built-in support for OAuth 1.0a. Additionally, it can handle different HTTP errors and handle redirects automatically. It also has built-in support for serializing and deserializing data using formats like JSON and XML, as well as sending multipart file uploads.

Overall Guzzle is an easy to use and powerful library for working with HTTP in PHP.

HTTParty is a Ruby library that makes it easy to work with HTTP requests and responses. It is built on top of the Ruby standard library's Net::HTTP and provides a simple, easy-to-use interface for making requests and handling responses.

One of the main features of HTTParty is its ability to automatically parse response bodies as JSON, XML, or other formats. This allows developers to easily access the data returned by an API without having to manually parse the response.

Example Use


```php use GuzzleHttp\Client; // Create a client session: $client = new Client(); // can also set session details like headers $client = new Client([ 'headers' => [ 'User-Agent' => 'webscraping.fyi', ] ]); // GET request: $response = $client->get('http://httpbin.org/get'); // print all details var_dump($response); // or the important bits printf("status: %s\n", $response->getStatusCode()); printf("headers: %s\n", json_encode($response->getHeaders(), JSON_PRETTY_PRINT)); printf("body: %s", $response->getBody()->getContents()); // POST request $response = $client->post( 'https://httpbin.org/post', // for JSON use json argument: ['json' => ['query' => 'foobar', 'page' => 2]] // or formdata use form_params: // ['form_params' => ['query' => 'foobar', 'page' => 2]] ); // For ASYNC requests getAsync function can be used: $promise1 = $client->getAsync('https://httpbin.org/get'); $promise2 = $client->getAsync('https://httpbin.org/get?foo=bar'); // await it: $results = Promise\unwrap([$promise1, $promise2]); foreach ($results as $result) { echo $result->getBody(); } // or add promise callback Promise\each([$promise1, $promise2], function ($response, $index, $callable) { echo $response->getBody(); }); ```
```ruby require 'httparty' # get request: response = HTTParty.get('http://httpbin.org/get') puts response.body puts response.code puts response.message puts response.headers.inspect # post request response = HTTParty.post('http://httpbin.org/post', :body => { :title => 'foo', :body => 'bar', :userId => 1 }.to_json, :headers => { 'Content-Type' => 'application/json' } ) puts response.body ```

Alternatives / Similar


Was this page helpful?