lancerhe/php-http

该包的最新版本(v1.1.0)没有提供许可证信息。

HTTP 请求和解析装饰器(易于扩展)。

v1.1.0 2016-08-21 04:06 UTC

This package is auto-updated.

Last update: 2024-09-05 14:56:09 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

HTTP 请求和解析装饰器(易于扩展)。

要求

PHP5.4.0 或更高版本

安装

创建或修改你的 composer.json

{
    "require": {
        "lancerhe/php-http": "1.1.0"
    }
}

然后运行

$ php composer.phar install

用法

HTTP 请求

构建一个 HTTP 请求。

<?php
require('./vendor/autoload.php');

$HttpRequest = new \LancerHe\Http\Request\Curl();
$HttpRequest->sendRequest("https://www.processon.com/notification/count", array('id' => 12));
var_dump( $HttpRequest->parseResponse() ); 

// result
// string(24) "{"count":0,"goon":false}"

使用简单的加密装饰器构建 HTTP 请求。

<?php
require('./vendor/autoload.php');

$HttpRequest = new \LancerHe\Http\Request\Curl();
$HttpRequest = new \LancerHe\Http\Request\Decorator\SimpleCrypt($HttpRequest);
$HttpRequest->sendRequest("https://www.processon.com/notification/count", array('id' => 12));
var_dump( $HttpRequest->parseResponse() ); 

// result
// array(2) {
//   'count' =>
//   int(0)
//   'goon' =>
//   bool(false)
// }

使用文件日志装饰器构建 HTTP 请求。

<?php

include 'php-http/vendor/autoload.php';

$HttpRequest = new \LancerHe\Http\Request\Curl();
$HttpRequest = new \LancerHe\Http\Request\Decorator\SimpleCrypt($HttpRequest);
$HttpRequest = new \LancerHe\Http\Request\Decorator\LoggerFile($HttpRequest);
$HttpRequest->sendRequest("https://www.processon.com/notification/count", array('id' => 12));
var_dump( $HttpRequest->parseResponse() );

查看日志在 /tmp/httprequest.log

tail -f /tmp/httprequest.log
============= [2015-08-25 05:49:10] >>>>>>>>>>>>
[request_header]     => POST /notification/count HTTP/1.1
Host: www.processon.com
Accept: */*
Content-Length: 43
Content-Type: application/x-www-form-urlencoded
[request_url]        => https://www.processon.com/notification/count
[request_body]       => id=12&sign=59ac2f3791de95684e7b7592266480dc
[response_http_code] => 200
[response_body]      => {"count":0,"goon":false}

HTTP 解析

构建一个 HTTP 解析。

<?php
require('./vendor/autoload.php');

$HttpParse = new \LancerHe\Http\Parse\Sample("header=user&name=lancer");
$HttpParse->parse();
var_dump( $HttpParse->parse() ); 
// result
// string(23) "header=user&name=lancer"

使用简单的加密构建 HTTP 解析。

$HttpParse = new \LancerHe\Http\Parse\Sample("user=Lancer&age=28&sign=0edd12427c5ccea50701bb95c8f2d8cf");
$HttpParse = new \LancerHe\Http\Parse\Decorator\SimpleCrypt($HttpParse);
$HttpParse->parse();
var_dump( $HttpParse->parse() );
// result
// array(2) {
//   'user' =>
//   string(6) "Lancer"
//   'age' =>
//   string(2) "28"
// } 

使用文件日志装饰器构建 HTTP 解析。

$HttpParse = new \LancerHe\Http\Parse\Sample("user=Lancer&age=28&sign=0edd12427c5ccea50701bb95c8f2d8cf");
$HttpParse = new \LancerHe\Http\Parse\Decorator\SimpleCrypt($HttpParse);
$HttpParse = new \LancerHe\Http\Parse\Decorator\LoggerFile($HttpParse);
$HttpParse->parse();
var_dump( $HttpParse->parse() );

查看日志在 /tmp/httpparse.log

array (
  'datetime' => '2015-08-25 18:05:38',
  'origin' => 'user=Lancer&age=28&sign=0edd12427c5ccea50701bb95c8f2d8cf',
  'decode' => 
  array (
    'user' => 'Lancer',
    'age' => '28',
  ),
)

测试

只需运行 phpunit

phpunit -c phpunit.xml