diginedbv/unirest-php

此包已被废弃且不再维护。作者建议使用 https://github.com/mashape/unirest-php 包。

Unirest PHP

0.99.1 2014-02-12 15:04 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:31:13 UTC


README

**致社区**:目前Unirest-PHP只支持同步请求,我非常希望实现异步支持。如果您有任何反馈或想法,请在#23 问题上进行评论。

Unirest for PHP Build Status

Unirest 是一套轻量级的 HTTP 库,适用于多种语言,非常适合大多数应用

  • 执行 GETPOSTPUTPATCHDELETE 请求
  • 支持表单参数、文件上传和自定义请求体
  • 支持 gzip
  • 原生支持基本认证
  • 可自定义超时时间
  • 可自定义每个请求的默认头信息(DRY)
  • 自动将 JSON 响应解析为原生对象

thefoskmashape.com 爱心打造

使用 Composer 安装

如果您使用 Composer 管理依赖,您可以添加 Unirest。

{
  "require" : {
    "mashape/unirest-php" : "dev-master"
  },
  "autoload": {
    "psr-0": {"Unirest": "lib/"}
  }
}

从 GitHub 安装源代码

Unirest-PHP 需要 PHP v5.3+。从 Github 下载 PHP 库,并在脚本中按如下方式引入

要安装源代码

$ git clone git@github.com:Mashape/unirest-php.git 

并将其包含在您的脚本中

require_once '/path/to/unirest-php/lib/Unirest.php';

创建请求

您可能想知道如何使用 Unirest 使在 PHP 中创建请求变得更容易,让我们看看一个实际示例

$response = Unirest::post("http://httpbin.org/post", array( "Accept" => "application/json" ),
  array(
    "parameter" => 23,
    "foo" => "bar"
  )
);

$response->code; // HTTP Status code
$response->headers; // Headers
$response->body; // Parsed body
$response->raw_body; // Unparsed body

文件上传

要在多部分表单表示中上传文件,请将 Unirest::file($path) 的返回值作为参数的值

$response = Unirest::post("http://httpbin.org/post", array( "Accept" => "application/json" ),
  array(
    "file" => Unirest::file("/tmp/file.txt") // Tells Unirest where the file is located
  )
);

自定义实体体

发送自定义体,如 JSON 对象,而不是字符串或表单样式参数,我们使用 json_encode 对体进行编码

$response = Unirest::post("http://httpbin.org/post", array( "Accept" => "application/json" ),
  json_encode(
    array(
      "parameter" => "value",
      "foo" => "bar"
    )
  )
);

基本认证

可以通过提供 usernamepassword 参数来进行基本认证请求的认证

$response = Unirest::get("http://httpbin.org/get", null, null, "username", "password");

请求

Unirest::get($url, $headers = array(), $parameters = NULL, $username = NULL, $password = NULL)
Unirest::post($url, $headers = array(), $body = NULL, $username = NULL, $password = NULL)
Unirest::put($url, $headers = array(), $body = NULL, $username = NULL, $password = NULL)
Unirest::patch($url, $headers = array(), $body = NULL, $username = NULL, $password = NULL)
Unirest::delete($url, $headers = array(), $body = NULL, $username = NULL, $password = NULL)
  • url - 要操作和请求信息的端点、地址或 uri。
  • headers - 请求头作为关联数组或对象
  • body - 请求体作为关联数组或对象
  • username - 基本认证用户名
  • password - 基本认证密码

响应

在收到响应后,Unirest 以对象的形式返回结果,这个对象应该始终包含与每个语言相关的相同键,以反映响应详情。

  • code - HTTP响应状态码(例如200
  • headers - HTTP响应头部
  • body - 可用情况下解析的响应体,例如,JSON响应会被解析成对象/关联数组。
  • raw_body - 未解析的响应体

高级配置

您可以设置一些高级配置以调整Unirest-PHP

超时

您可以设置一个自定义的超时值(以为单位)

Unirest::timeout(5); // 5s timeout

默认请求头部

您可以设置默认头部,这些头部将在每次请求时发送

Unirest::defaultHeader("Header1", "Value1");
Unirest::defaultHeader("Header2", "Value2");

您可以通过以下方式随时清除默认头部:

Unirest::clearDefaultHeaders();

SSL验证

当消费受SSL保护的端点时,您可以显式地启用或禁用SSL证书验证

Unirest::verifyPeer(false); // Disables SSL cert validation

默认值为true