Download the PHP package gokure/http-client without Composer

On this page you can find all versions of the php package gokure/http-client. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package http-client

A HTTP Client for Hyperf

Implements HTTP client for Hyperf via laravel/framework.

Introduction

HTTP Client is an expressive, minimal API around the Guzzle HTTP client that implements from Laravel, allowing you to quickly make outgoing HTTP requests to communicate with other web applications.

Before getting started, you should ensure that you have installed the Guzzle package as a dependency of your application. By default, Hyperf automatically includes this dependency. However, if you have previously removed the package, you may install it again via Composer:

Installation

Require the gokure/http-client package in your composer.json and update your dependencies:

Making Requests

To make requests, you may use the get, post, put, patch, and delete methods provided by the Http facade. First, let's examine how to make a basic GET request to another URL:

The get method returns an instance of Gokure\Http\Client, which provides a variety of methods that may be used to inspect the response:

The Gokure\Http\Client\Response object also implements the PHP ArrayAccess interface, allowing you to access JSON response data directly on the response:

Dumping Requests

If you would like to dump the outgoing request instance before it is sent and terminate the script's execution, you may add the dd method to the beginning of your request definition:

Request Data

Of course, it is common when making POST, PUT, and PATCH requests to send additional data with your request, so these methods accept an array of data as their second argument. By default, data will be sent using the application/json content type:

GET Request Query Parameters

When making GET requests, you may either append a query string to the URL directly or pass an array of key / value pairs as the second argument to the get method:

Sending Form URL Encoded Requests

If you would like to send data using the application/x-www-form-urlencoded content type, you should call the asForm method before making your request:

Sending A Raw Request Body

You may use the withBody method if you would like to provide a raw request body when making a request. The content type may be provided via the method's second argument:

Multi-Part Requests

If you would like to send files as multi-part requests, you should call the attach method before making your request. This method accepts the name of the file and its contents. If needed, you may provide a third argument which will be considered the file's filename:

Instead of passing the raw contents of a file, you may pass a stream resource:

Headers

Headers may be added to requests using the withHeaders method. This withHeaders method accepts an array of key / value pairs:

Authentication

You may specify basic and digest authentication credentials using the withBasicAuth and withDigestAuth methods, respectively:

Bearer Tokens

If you would like to quickly add a bearer token to the request's Authorization header, you may use the withToken method:

Timeout

The timeout method may be used to specify the maximum number of seconds to wait for a response:

If the given timeout is exceeded, an instance of Gokure\Http\Client\ConnectionException will be thrown.

Retries

If you would like HTTP client to automatically retry the request if a client or server error occurs, you may use the retry method. The retry method accepts two arguments: the maximum number of times the request should be attempted, and the number of milliseconds that Hyperf should wait in between attempts:

If all of the requests fail, an instance of Gokure\Http\Client\RequestException will be thrown.

Error Handling

Unlike Guzzle's default behavior, Hyperf's HTTP client wrapper does not throw exceptions on client or server errors (400 and 500 level responses from servers). You may determine if one of these errors was returned using the successful, clientError, or serverError methods:

Throwing Exceptions

If you have a response instance and would like to throw an instance of Gokure\Http\Client\RequestException if the response status code indicates a client or server error, you may use the throw method:

The Gokure\Http\Client\RequestException instance has a public $response property which will allow you to inspect the returned response.

The throw method returns the response instance if no error occurred, allowing you to chain other operations onto the throw method:

If you would like to perform some additional logic before the exception is thrown, you may pass a closure to the throw method. The exception will be thrown automatically after the closure is invoked, so you do not need to re-throw the exception from within the closure:

Guzzle Options

You may specify additional Guzzle request options using the withOptions method. The withOptions method accepts an array of key / value pairs:

Concurrent Requests

Sometimes, you may wish to make multiple HTTP requests concurrently. In other words, you want several requests to be dispatched at the same time instead of issuing the requests sequentially. This can lead to substantial performance improvements when interacting with slow HTTP APIs.

Thankfully, you may accomplish this using the pool method. The pool method accepts a closure which receives an Gokure\Http\Client\Pool instance, allowing you to easily add requests to the request pool for dispatching:

As you can see, each response instance can be accessed based on the order it was added to the pool. If you wish, you can name the requests using the as method, which allows you to access the corresponding responses by name:

Testing

Many Hyperf services provide functionality to help you easily and expressively write tests, and Hyperf's HTTP wrapper is no exception. The Http facade's fake method allows you to instruct the HTTP client to return stubbed / dummy responses when requests are made.

Faking Responses

For example, to instruct the HTTP client to return empty, 200 status code responses for every request, you may call the fake method with no arguments:

{note} When faking requests, HTTP client middleware are not executed. You should define expectations for faked responses as if these middleware have run correctly.

Faking Specific URLs

Alternatively, you may pass an array to the fake method. The array's keys should represent URL patterns that you wish to fake and their associated responses. The * character may be used as a wildcard character. Any requests made to URLs that have not been faked will actually be executed. You may use the Http facade's response method to construct stub / fake responses for these endpoints:

If you would like to specify a fallback URL pattern that will stub all unmatched URLs, you may use a single * character:

Faking Response Sequences

Sometimes you may need to specify that a single URL should return a series of fake responses in a specific order. You may accomplish this using the Http::sequence method to build the responses:

When all of the responses in a response sequence have been consumed, any further requests will cause the response sequence to throw an exception. If you would like to specify a default response that should be returned when a sequence is empty, you may use the whenEmpty method:

If you would like to fake a sequence of responses but do not need to specify a specific URL pattern that should be faked, you may use the Http::fakeSequence method:

Fake Callback

If you require more complicated logic to determine what responses to return for certain endpoints, you may pass a closure to the fake method. This closure will receive an instance of Gokure\Http\Client\Request and should return a response instance. Within your closure, you may perform whatever logic is necessary to determine what type of response to return:

Inspecting Requests

When faking responses, you may occasionally wish to inspect the requests the client receives in order to make sure your application is sending the correct data or headers. You may accomplish this by calling the Http::assertSent method after calling Http::fake.

The assertSent method accepts a closure which will receive an Gokure\Http\Client\Request instance and should return a boolean value indicating if the request matches your expectations. In order for the test to pass, at least one request must have been issued matching the given expectations:

If needed, you may assert that a specific request was not sent using the assertNotSent method:

Or, you may use the assertNothingSent method to assert that no requests were sent during the test:

License

Released under the MIT License, see LICENSE.


All versions of http-client with dependencies

PHP Build Version
Package Version
Requires php Version >= 7.2
ext-swoole Version >= 4.4
hyperf/framework Version ^1.0|^2.0
hyperf/guzzle Version ^1.0|^2.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package gokure/http-client contains the following files

Loading the files please wait ....