madnh/request

cURL包装器

1.3.0 2016-10-03 13:17 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:36:39 UTC


README

A cURL包装器

配置

Request支持3种配置方式

  • 全局配置
  • 实例配置
  • 请求配置

继承:全局配置 <- 实例配置 <- 请求配置

默认配置

  • url: 请求的URL
  • request_type: 请求方法,默认是 'GET'
  • data: 请求数据,字符串或数组,默认是空字符串
  • use_cookie: 使用cookie?默认是 true
  • cookie: 请求的定制cookie,默认是 空数组
  • cookie_send: cookie文件路径,在发送请求时使用
  • cookie_save: cookie文件路径,在每次请求后存储cookie
  • fail_on_error: 在出错时停止?默认是 true
  • follow_location: 跟随任何重定向?默认是 true
  • return_transfer: 返回响应而不是打印它,默认是 true
  • header: 请求头,数组,默认是 空数组
  • return_header: 返回响应头
  • verifying_ssl: 默认是 false
  • use_proxy: 默认是 false
  • proxy: 代理信息
  • is_http_proxy: 默认是 true
  • referer: 默认是 true
  • timeout: 请求超时,默认是 3600
  • useragent: 请求的用户代理信息,默认是 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36'

全局配置

Request::globalConfig('cookie_send', __DIR__.'/cookie.txt');
Request::globalConfig('cookie_save', __DIR__.'/cookie.txt');

响应

  • request: 请求配置,数组

  • header: 响应头,字符串

  • response: 响应,字符串

  • error: False 或错误数组

    • no: cURL的错误编号
    • message: 错误信息
  • start: 请求开始时的UNIX时间戳

  • end: 请求完成时的UNIX时间戳

常量

  • AUTH_MODE_BASIC
  • AUTH_MODE_DIGEST
  • AUTH_MODE_GSSNEGOTIATE
  • AUTH_MODE_NTLM
  • AUTH_MODE_ANY
  • AUTH_MODE_ANYSAFE

如何使用

  1. 如果需要,设置全局配置
  2. 创建新实例,如果需要配置
  3. 设置实例配置
  4. 发出请求,请求可能包含配置

配置方法

  • globalConfig(config_name: 字符串或配置数组,[value = null])
  • getGlobalConfig()
  • getConfig(): 导出配置

请求方法

  • request(config)
  • get(url, [data, [config])
  • post(url, [data, [config])
  • put(url, [data, [config])
  • delete(url, [data, [config])

其他方法

  • setHeader(headers), 设置请求头,返回实例
  • addHeader(name, value): 添加请求头,返回实例
  • setCookie(cookies), 设置请求cookie,返回实例
  • addCookie(name, value), 设置请求cookie值,返回实例
  • setData(data): 设置请求数据,返回实例
  • addData(name, value): 添加请求数据,返回实例
  • rawConfig(CURL Options实例, value), 设置配置,返回实例
  • setBasicAuthentication(username, password), 设置基本认证信息,返回实例
  • setHttpAuthMode(mode): 设置认证模式。返回实例。支持
    • AUTH_MODE_BASIC
    • AUTH_MODE_DIGEST
    • AUTH_MODE_GSSNEGOTIATE
    • AUTH_MODE_NTLM
    • AUTH_MODE_ANY
    • AUTH_MODE_ANYSAFE

示例

创建新实例

$obj = new Request(array(
    'timeout' => 10
));
$result = $obj->request(array(
    'url' => 'https://w3schools.org.cn/'
));
print_r($result);

发出另一个请求

$result = Request::url($_SERVER['HTTP_HOST'] . '/test/target.php')
        ->addData('name', 'Tom')
        ->addData('old', 16)
        ->setCookie(array(
            'is_admin' => true
        ))
        ->ajaxRequest()
        ->post();