php httpful,HTTPFul:一个链式 REST 友好的PHP HTTP 户端

Httpful是一个简单易用的PHP5.3+ HTTP客户端库,强调可读性、简洁性和灵活性。它提供了GET、PUT、POST等HTTP方法支持,自动解析响应,支持基本认证和客户端证书认证。可以通过Composer或下载phar文件安装。示例展示了如何搜索Twitter API获取包含"#PHP"的推文,并展示如何发送自定义头部。
摘要由CSDN通过智能技术生成

Httpful

a6b036512d9344e30b960f79573193f2.png68747470733a2f2f706f7365722e707567782e6f72672f6e617465676f6f642f6874747066756c2f646f776e6c6f6164732e706e67

Httpful is a simple Http Client library for PHP 5.3+. There is an emphasis of readability, simplicity, and flexibility – basically provide the features and flexibility to get the job done and make those features really easy to use.

Features

Readable HTTP Method Support (GET, PUT, POST, DELETE, HEAD, PATCH and OPTIONS)

Custom Headers

Automatic "Smart" Parsing

Automatic Payload Serialization

Basic Auth

Client Side Certificate Auth

Request "Templates"

Sneak Peak

Here's something to whet your appetite. Search the twitter API for tweets containing "#PHP". Include a trivial header for the heck of it. Notice that the library automatically interprets the response as JSON (can override this if desired) and parses it as an array of objects.

// Make a request to the GitHub API with a custom

// header of "X-Trvial-Header: Just as a demo".

$url = "https://api.github.com/users/nategood";

$response = \Httpful\Request::get($url)

->expectsJson()

->withXTrivialHeader('Just as a demo')

->send();

echo "{$response->body->name} joined GitHub on " .

date('M jS', strtotime($response->body->created_at)) ."\n";

Installation

Phar

A PHP Archive (or .phar) file is available for downloading. Simply download the .phar, drop it into your project, and include it like you would any other php file. This method is ideal for smaller projects, one off scripts, and quick API hacking.

include('httpful.phar');

$r = \Httpful\Request::get($uri)->sendIt();

...

Composer

Httpful is PSR-0 compliant and can be installed using composer. Simply add nategood/httpful to your composer.json file. Composer is the sane alternative to PEAR. It is excellent for managing dependencies in larger projects.

{

"require": {

"nategood/httpful": "*"

}

}

Install from Source

Because Httpful is PSR-0 compliant, you can also just clone the Httpful repository and use a PSR-0 compatible autoloader to load the library, like Symfony's. Alternatively you can use the PSR-0 compliant autoloader included with the Httpful (simply require("bootstrap.php")).

Build your Phar

If you want the build your own Phar Archive you can use the build script included. Make sure that your php.ini has the Off or 0 value for the phar.readonly setting. Also you need to create ad empty downloads directory in the project root.

Show Me More!

You can checkout the Httpful Landing Page for more info including many examples and documentation.

Contributing

Httpful highly encourages sending in pull requests. When submitting a pull request please:

All pull requests should target the dev branch (not master)

Make sure your code follows the coding conventions

Please use soft tabs (four spaces) instead of hard tabs

Make sure you add appropriate test coverage for your changes

Run all unit tests in the test directory via phpunit ./tests

Include commenting where appropriate and add a descriptive pull request message

Changelog

0.2.20

MINOR Move Response building logic into separate function PR #193

0.2.19

FEATURE Before send hook PR #164

MINOR More descriptive connection exceptions PR #166

0.2.18

0.2.17

FEATURE PR #144 Adds additional parameter to the Response class to specify additional meta data about the request/response (e.g. number of redirect).

0.2.16

FEATURE Added support for whenError to define a custom callback to be fired upon error. Useful for logging or overriding the default error_log behavior.

0.2.15

FEATURE I #131 Support for SOCKS proxy

0.2.14

FEATURE I #138 Added alternative option for XML request construction. In the next major release this will likely supplant the older version.

0.2.13

REFACTOR I #121 Throw more descriptive exception on curl errors

REFACTOR I #122 Better proxy scrubbing in Request

REFACTOR I #119 Better document the mimeType param on Request::body

Misc code and test cleanup

0.2.12

REFACTOR I #123 Support new curl file upload method

FEATURE I #118 5.4 HTTP Test Server

FIX I #109 Typo

FIX I #103 Handle also CURLOPT_SSL_VERIFYHOST for strictSsl mode

0.2.11

FIX I #99 Prevent hanging on HEAD requests

0.2.10

FIX I #93 Fixes edge case where content-length would be set incorrectly

0.2.9

FEATURE I #89 multipart/form-data support (a.k.a. file uploads)! Thanks @dtelaroli!

0.2.8

FIX Notice fix for Pull Request 86

0.2.7

FIX I #86 Remove Connection Established header when using a proxy

0.2.6

FIX I #85 Empty Content Length issue resolved

0.2.5

FEATURE I #80 I #81 Proxy support added with useProxy method.

0.2.4

FEATURE I #77 Convenience method for setting a timeout (seconds) $req->timeoutIn(10);

FIX I #75 I #78 Bug with checking if digest auth is being used.

0.2.3

FIX Overriding default Mime Handlers

FIX PR #73 Parsing http status codes

0.2.2

FEATURE Add support for parsing JSON responses as associative arrays instead of objects

FEATURE Better support for setting constructor arguments on Mime Handlers

0.2.1

FEATURE PR #72 Allow support for custom Accept header

0.2.0

REFACTOR PR #49 Broke headers out into their own class

REFACTOR PR #54 Added more specific Exceptions

FIX PR #58 Fixes throwing an error on an empty xml response

FEATURE PR #57 Adds support for digest authentication

0.1.6

Ability to set the number of max redirects via overloading followRedirects(int max_redirects)

Standards Compliant fix to Accepts header

Bug fix for bootstrap process when installed via Composer

0.1.5

Use DIRECTORY_SEPARATOR constant PR #33

Added the raw_headers property reference to response.

Compose request header and added raw_header to Request object.

Fixed response has errors and added more comments for clarity.

Fixed header parsing to allow the minimum (status line only) and also cater for the actual CRLF ended headers as per RFC2616.

Added the perfect test Accept: header for all Acceptable scenarios see @b78e9e82cd9614fbe137c01bde9439c4e16ca323 for details.

Added default User-Agent header

User-Agent: Httpful/0.1.5 + curl version + server software + PHP version

To bypass this "default" operation simply add a User-Agent to the request headers even a blank User-Agent is sufficient and more than simple enough to produce me thinks.

Completed test units for additions.

Added phpunit coverage reporting and helped phpunit auto locate the tests a bit easier.

0.1.4

Add support for CSV Handling PR #32

0.1.3

Handle empty responses in JsonParser and XmlParser

0.1.2

Added support for setting XMLHandler configuration options

Added examples for overriding XmlHandler and registering a custom parser

Removed the httpful.php download (deprecated in favor of httpful.phar)

0.1.1

Bug fix serialization default case and phpunit tests

0.1.0

Added Support for Registering Mime Handlers

Created AbstractMimeHandler type that all Mime Handlers must extend

Pulled out the parsing/serializing logic from the Request/Response classes into their own MimeHandler classes

Added ability to register new mime handlers for mime types

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值