Guzzle如何安装和使用
这篇文章主要介绍了Guzzle如何安装和使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Guzzle如何安装和使用文章都会有所收获,下面我们一起来看看吧。
一.什么是guzzle
Guzzle是一个PHP HTTP客户端,可以轻松发送HTTP请求,并且可以轻松集成Web服务。
二.安装Guzzle
1.使用composer安装
composer require guzzlehttp/guzzle
2.或者编辑项目的composer.json文件,添加Guzzle作为依赖
{ "require": { "guzzlehttp/guzzle": "~6.0" } }
执行 composer update
三.Guzzle基本使用
1.发送请求
use GuzzleHttp\Client; $client = new Client([ // Base URI is used with relative requests 'base_uri' => 'http://httpbin.org', // You can set any number of default request options. 'timeout' => 2.0, ]); $response = $client->get('http://httpbin.org/get'); $response = $client->delete('http://httpbin.org/delete'); $response = $client->head('http://httpbin.org/get'); $response = $client->options('http://httpbin.org/get'); $response = $client->patch('http://httpbin.org/patch'); $response = $client->post('http://httpbin.org/post'); $response = $client->put('http://httpbin.org/put');
2.设置查询字符串
$response = $client->request('GET', 'http://httpbin.org?foo=bar');
或使用 query 请求参数来声明查询字符串参数:
$client->request('GET', 'http://httpbin.org', [ 'query' => ['foo' => 'bar'] ]);
3.设置POST表单,传入 form_params 数组参数
$response = $client->request('POST', 'http://httpbin.org/post', [ 'form_params' => [ 'field_name' => 'abc', 'other_field' => '123', 'nested_field' => [ 'nested' => 'hello' ] ] ]);
4.使用响应
# 状态码 $code = $response->getStatusCode(); // 200 $reason = $response->getReasonPhrase(); // OK # header // Check if a header exists. if ($response->hasHeader('Content-Length')) { echo "It exists"; } // Get a header from the response. echo $response->getHeader('Content-Length'); // Get all of the response headers. foreach ($response->getHeaders() as $name => $values) { echo $name . ': ' . implode(', ', $values) . "\r\n"; } # 响应体 $body = $response->getBody(); // Implicitly cast the body to a string and echo it echo $body; // Explicitly cast the body to a string $stringBody = (string) $body; // Read 10 bytes from the body $tenBytes = $body->read(10); // Read the remaining contents of the body as a string $remainingBytes = $body->getContents();
四.安装PHPUnit
composer方式安装
composer global require "phpunit/phpunit=5.5.*"
或者在composer.json文件中声明对phpunit/phpunit的依赖
{ "require-dev": { "phpunit/phpunit": "5.5.*" } }
五.API单元测试
1.我们在tests\unit\MyApiTest.php中定义了两个测试用例
<?php class MyApiTest extends \PHPUnit_Framework_TestCase { protected $client; public function setUp() { $this->client = new \GuzzleHttp\Client( [ 'base_uri' => 'http://myhost.com', 'http_errors' => false, #设置成 false 来禁用HTTP协议抛出的异常(如 4xx 和 5xx 响应),默认情况下HTPP协议出错时会抛出异常。 ]); } public function testAction1() { $response = $this->client->get('/api/v1/action1'); $body = $response->getBody(); //添加测试 $this->assertEquals(200, $response->getStatusCode()); $data = json_decode($body, true); $this->assertArrayHasKey('errorno', $data); $this->assertArrayHasKey('errormsg', $data); $this->assertArrayHasKey('data', $data); $this->assertEquals(0, $data['errorno']); $this->assertInternalType('array', $data['data']); } public function testAction2() { $response = $this->client->post('/api/v1/action2', [ 'form_params' => [ 'name' => 'myname', 'age' => 20, ], ]); $body = $response->getBody(); //添加测试 $this->assertEquals(200, $response->getStatusCode()); $data = json_decode($body, true); $this->assertArrayHasKey('errorno', $data); $this->assertArrayHasKey('errormsg', $data); $this->assertArrayHasKey('data', $data); $this->assertEquals(0, $data['errorno']); $this->assertInternalType('array', $data['data']); } }
2.运行测试
在项目根目录执行命令
php vendor/bin/phpunit tests/unit/MyApiTest.php
关于“Guzzle如何安装和使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Guzzle如何安装和使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注蜗牛博客行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。
评论