类用于

1.0.0 2024-03-21 16:31 UTC

This package is auto-updated.

Last update: 2024-09-21 17:52:13 UTC


README

cURL (客户端URL) 是用于向服务器传输数据的工具。在Unix系统中是命令行工具。使用这个cURL库很简单。

要求

  • PHP >= 7.0
  • 已安装Composer

安装库

// Current version 1.0.0
composer require gabriel-binotti/curl

导入

在您的文件中导入库

use GabrielBinottiCurl\MyCurl;

require_once 'vendor/autoload.php';

使用库(基础)

$response = (new MyCurl())
    ->url('https://viacep.com.br/ws/01001000/json/')
    ->method('GET')
    ->options()
    ->header()
    ->execute();
  • url() -> 这个方法的参数是一个表示API URL的字符串。
url("string URL")
  • method() -> 这是请求的类型。参数是一个字符串(GET、POST、DELETE或PUT)。
method('GET')
  • options() -> 这个方法用于配置请求的选项。您可以使用默认选项或根据需要个性化它们。
// Default config
$this->options = [
  CURLOPT_RETURNTRANSFER      => true,
  CURLOPT_ENCODING            => '',
  CURLOPT_MAXREDIRS           => 10,
  CURLOPT_TIMEOUT             => 30,
  CURLOPT_FOLLOWLOCATION      => true,
  CURLOPT_HTTP_VERSION        => CURL_HTTP_VERSION_1_1,
  ];

要个性化配置。参数是一个关联数组。例如

options(
  [
    CURLOPT_RETURNTRANSFER      => true,
    CURLOPT_ENCODING            => '',
  ]
)
  • header() -> 这个方法配置请求的头部,您可以使用默认配置或更改它们。
// Default config
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Content-Type: application/json'
));

您可以通过传递一个包含数据的数组作为方法参数来更改设置。例如

header(
  [
    'Content-Type: text/plain'
  ]
)
  • execute() -> 这个方法负责执行请求,默认情况下,响应是json,但您可以将其更改为(对象或数组)。
execute('object')

在请求体中发送数据

您可以在POST请求的请求体中发送数据,例如,调用body()方法并传递一个关联数组作为参数。

$response = (new MyCurl())
  ->url('URL')
  ->method('POST')
  ->body(
      [
          "key1" => "value1", 
          "key2" => "value2"
      ]
  )
  ->options()
  ->header()
  ->execute();

认证

这个类允许使用基本认证和JWT认证方法auth(),例如

  • 基本认证
$response = (new MyCurl())
  ->url('URL')
  ->method('POST')
  ->body(
      [
          "key1" => "value1", 
          "key2" => "value2"
      ]
  )
  ->options()
  ->header()
  ->auth('basic', 'username:password')
  ->execute();
  • JWT
$response = (new MyCurl())
    ->url('URL')
    ->method('POST')
    ->body(
        [
            "key1" => "value1", 
            "key2" => "value2"
        ]
    )
    ->options()
    ->header()
    ->auth('jwt', 'token')
    ->execute();