项目作者: andrewprofile

项目描述 :
PHP HTTP client
高级语言: PHP
项目地址: git://github.com/andrewprofile/http-client.git
创建时间: 2017-10-22T22:36:21Z
项目社区:https://github.com/andrewprofile/http-client

开源协议:BSD 3-Clause "New" or "Revised" License

下载


HttpClient

This is PHP HTTP Client for easy send HTTP requests and integrate with web services.
Uses PSR-7 interfaces for responses, and streams.

Requirements

HttpClient requires PHP version 7.1.0 or greater.

Usage: psr/http-message

Usage for development: jakub-onderka/php-parallel-lint, phpstan/phpstan, squizlabs/php_codesniffer, phpmd/phpmd,

Php Inspections (EA Extended)

Installation

Production

  1. $ composer install --no-dev --optimize-autoloader

Development

  1. $ composer install

Testing

  1. $ bin/phpunit

Static Analysis

  1. $ bin/parallel-lint --exclude vendor .
  1. $ bin/phpstan analyse src tests -l 7

Examples

Example 1

  1. $request = new Client(new CurlProvider());
  2. $uri = new Uri('http://example.com/v1/producers');
  3. $options = new RequestOptions([
  4. RequestOptions::AUTH => ['username', 'password'],
  5. RequestOptions::HEADERS => new Headers($uri, [
  6. 'Content-Type' => 'application/json; charset=utf8'
  7. ]),
  8. ]);
  9. $response = $request->get($uri, $options);
  10. echo $response->getStatusCode();
  11. // "200"
  12. echo $response->getHeaderLine('content-type');
  13. // "application/json"
  14. echo $response->getBody();
  15. // "{"version":"v1","success":true,"data":{"producers":[ //...// ]},"error":null}"

Example 2

  1. $request = new Client(new CurlProvider());
  2. $baseUri = new Uri('http://example.com/');
  3. $options = new RequestOptions([
  4. RequestOptions::BASE_URI => $baseUri,
  5. RequestOptions::AUTH => ['username', 'password'],
  6. ]);
  7. $response = $request->request(RequestMethod::GET, new Uri('/v1/producers'), $options);
  8. echo $response->getStatusCode();
  9. // "200"
  10. echo $response->getHeaderLine('content-type');
  11. // "application/json"
  12. echo $response->getBody();
  13. // "{"version":"v1","success":true,"data":{"producers":[ //...// ]},"error":null}"

Example 3

  1. $request = new Client(new CurlProvider());
  2. $baseUri = new Uri('http://example.com/');
  3. $options = new RequestOptions([
  4. RequestOptions::BASE_URI => $baseUri,
  5. RequestOptions::AUTH => ['username', 'password', CurlAuthMethod::BASIC],
  6. RequestOptions::HEADERS => new Headers($baseUri, [
  7. 'Content-Type' => 'application/json; charset=utf8'
  8. ]),
  9. RequestOptions::JSON_BODY => true,
  10. RequestOptions::BODY => [
  11. 'producer' => [
  12. 'name' => 'test',
  13. 'site_url' => 'http:://httpclient.dev',
  14. 'logo_filename' => 'logo.jpg',
  15. 'ordering' => true,
  16. 'source_id' => null,
  17. ],
  18. ]
  19. ]);
  20. $response = $request->post(new Uri('/v1/producers'), $options);
  21. echo $response->getStatusCode();
  22. // "200"
  23. echo $response->getHeaderLine('content-type');
  24. // "application/json"
  25. echo $response->getBody();
  26. // "{"version":"v1","success":true,"data":{"producer":[ //...// ]},"error":null}"