10quality/php-curl

这是一个库(包装器),用于在执行使用Curl的请求时提供功能。非常适合开发自定义API连接或创建通用请求。

v1.0.2 2020-07-17 18:47 UTC

This package is auto-updated.

Last update: 2024-09-05 23:18:09 UTC


README

Latest Stable Version Total Downloads License

这是一个库(包装器),用于在执行使用Curl的请求时提供功能。非常适合开发自定义API连接或创建通用请求。

安装

composer require 10quality/php-curl

用法

请求调用选项

您可以使用以下选项来调用请求

// With global `curl_request()`
$response = curl_request('http://my-api.com');

// With global `get_curl_contents()`
// --- Which is an alias of `curl_request()`
$response = get_curl_contents('http://my-api.com');

// With class `Curl`
$response = Curl::request('http://my-api.com');

参数

参数示例

$response = curl_request($url, $method, $data, $headers, $options);

查询字符串和POST正文

GET示例

$response = curl_request(
    'http://my-api.com',
    'GET',
    [
        'action'    => 'get-countries',
        'format'    => 'xml',
    ]
);

POST示例

$response = curl_request(
    'http://my-api.com',
    'POST',
    [
        'action'    => 'get-countries',
        'format'    => 'xml',
        'search'    => 'united',
        'limit'     => 5,
    ]
);

同时使用

定义$data数组键query_stringrequest_body,将一些参数作为查询字符串或POST正文发送。在以下示例中,actionformat将作为查询字符串发送,而searchlimit将作为POST正文发送

$response = curl_request(
    'http://my-api.com',
    'POST',
    [
        'query_string' => [
            'action'    => 'get-countries',
            'format'    => 'xml',
        ],
        'request_body' => [
            'search'    => 'united',
            'limit'     => 5,
        ],
    ]
);

以下示例将生成以下请求

url:        http://my-api.com?action=get-countries&format=xml
post body:  search=united&limit=5

头部信息

以下示例展示了如何发送头部信息

$response = curl_request(
    'http://my-api.com',
    'GET',
    ['action' => 'get-countries'],
    [
        'Authorization: Bearer -token-',
        'Custom: Value',
    ]
);

Curl选项

以下示例展示了如何添加Curl选项或覆盖现有选项

$response = curl_request(
    'http://my-api.com',
    'GET',
    ['action' => 'get-countries'],
    [],
    [
        CURLOPT_TIMEOUT         => 60,
        CURLOPT_RETURNTRANSFER  => 0,
        CURLOPT_USERAGENT       => 'Custom/Agent 007',
    ]
);

使用可调用对象的自定义请求方法

如果您需要向不支持的方法发送特殊请求,可以使用以下示例中的$callable参数

$response = curl_request(
    'http://my-api.com',
    'XPOST',
    [],
    ['temperature' => 60, 'uptime' => 4564612131],
    [],// headers
    [],// options
    function($curl, $data) {
        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'XPOST');
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
        return $curl;
    }
);

注意:可调用对象将接收$curl$data作为参数,并期望返回变量$curl

指南

PSR-2编码标准。

版权和许可

MIT许可 - (C) 2018 10 Quality