bolster/http

此包已被放弃,不再维护。未建议替代包。

Http 包装器

1.0 2014-10-07 06:13 UTC

This package is not auto-updated.

Last update: 2020-01-24 15:30:28 UTC


README

[[已弃用]] 此仓库不再维护。我们将在 2017/12/31 删除此仓库并取消发布包。

Bolster PHP http 模块

什么是 Bolster

Bolster 有长枕、支持材料等含义。
这个名字是希望这个库能够支持开发者,让他们得到休息。

http://ejje.weblio.jp/content/bolster

类结构

Bolster\
├── Http\
│   ├── Parser\
│   │   ├── JsonParser.php
│   │   ├── ParserInterface.php
│   │   └── PlainParser.php
│   ├── Request.php
│   └── Response.php
└── Http.php

安装

将你的 composer.json 添加到

{
    "require": {
        "bolster/http": "0.8"
    }
}

用法

基本

<?php
$http = new Bolster\Http();
$response = $http->get('https://qiita.com/api/v1/users/L_e_k_o');

echo $response;

标准输出

{"id":3338,"url_name":"L_e_k_o","profile_image_url":"https://pbs.twimg.com/profile_images/453306597716930561/fcy5Qh53_normal.jpeg",...

带有 http 头和响应解析器

<?php
$http = new Bolster\Http();

$parser = new Bolster\Http\Parser\JsonParser();
$http->setParser($parser);

$http->setHeaders('Accept',     'application/vnd.github.v3+json');
$http->setHeaders('User-Agent', 'Bolster-Http-Module');

$json = $http->get('https://api.github.com/users/Leko');

var_dump($json);

标准输出

array(30) {
  'login' =>
  string(4) "Leko"
  'id' =>
  int(1424963)
  'avatar_url' =>
  string(51) "https://avatars.githubusercontent.com/u/1424963?v=2"
  'gravatar_id' =>
  string(32) "13fbd31a4503c352369aab017e3edef7"
  'url' =>
  string(33) "https://api.github.com/users/Leko"
  ...

带有上下文选项

<?php

$http = new Bolster\Http();

$http->setHttpContextOptions('ignore_errors', false);
$http->get('http://hogehoge.com/404');

抛出错误

PHP Warning:  file_get_contents(http://hogehoge.com/404?): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /PATH/TO/source/Bolster/Http/Request.php on line 101
PHP Stack trace: ...