使用 HTTP 客户端

    ( string | UriInterface ) 基础的 URI,将用户后续的请求,将与 request($uri) 的 $uri 合并成一个完整的 URI

    timeout ( int | float ) 设置请求的超时时间,单位为秒

    发送一个请求

    1. use Swoft\HttpClient\Client;
    2. $response = $client->get('http://www.swoft.org')->getResponse();
    3. $response = $client->post('http://www.swoft.org')->getResponse();
    4. $response = $client->head('http://www.swoft.org')->getResponse();
    5. $response = $client->options('http://www.swoft.org')->getResponse();
    6. $response = $client->patch('http://www.swoft.org')->getResponse();
    7. $response = $client->put('http://www.swoft.org')->getResponse();
    8. $response = $client->delete('http://www.swoft.org')->getResponse();

    所有请求都基于 request(string $method, string|UriInterface $uri, array $options) 方法,如有非预置自定义方法请求,可以使用此方法自行构造

    注意并发请求仅作用于co适配器下,若在驱动下此操作会退化为同步阻塞操作

    1. $request1 = $client->get('http://www.swoft.org');
    2. $request2 = $client->get('http://www.swoft.org');
    3. $request3 = $client->get('http://www.swoft.org');
    4. $response1 = $request1->getResponse();
    5. $response2 = $request2->getResponse();
    6. $response3 = $request3->getResponse();

    HttpResult 对象

    基于 PSR-7 实现,继承于 Psr\Http\Message\ResponseInterface,使用方法在此不做过多的阐述,可直接参考相关规范

    Raw 请求

    通过对 Options 设置 body 参数设置发送请求的 Body,此参数仅允许字符串格式

    1. /** @var Response $response */
    2. $response = $client->post('/', [
    3. 'base_uri' => 'http://www.swoft.org',
    4. 'form_params' => [
    5. 'key' => 'value',
    6. ],
    7. ])->getResponse();

    Json 请求

    在表单提交下我们提供了json参数,该参数会自动在Header带上application/json的,并格式化数组为json结构