kajna / purli
轻量级库,具有面向对象接口,用于发送HTTP请求
1.0.0
2017-11-08 00:29 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: 4.0.*
This package is auto-updated.
Last update: 2024-09-18 12:59:36 UTC
README
Purli (PHP URL接口) 是一个轻量级库,具有面向对象接口,用于发送HTTP请求。
安装
该包通过 Composer 提供
{ "require": { "kajna/purli": "dev-master" } }
使用示例
使用GET方法和CURL处理器获取数据
最小示例,Purli默认使用CURL处理器(如果可用),否则回退到socket。
try { $purli = (new \Purli\Purli()) ->get('http://www.example.com') ->close(); $response = $purli->response(); echo $response->asText(); } catch(\Exception $e) { echo $e->getMessage(); }
使用GET方法和socket处理器获取数据
如果显式设置,Purli将使用PHP sockets进行请求,无论是否安装了CURL。
try { $purli = (new \Purli\Purli(\Purli\Purli::SOCKET)) ->get('http://example.com') ->close(); $response = $purli->response(); echo $response->asText(); } catch(\Exception $e) { echo $e->getMessage(); }
使用POST方法获取数据
try { $data = array('foo' => 'bar'); $purli = (new \Purli\Purli()) ->setParams($data) ->post('http://www.example.com') ->close(); $response = $purli->response(); print_r($response->asText()); } catch(\Exception $e) { echo $e->getMessage(); }
使用POST方法发送和接收XML数据
try { $data = '<root><foo>bar</foo></root>'; $purli = (new \Purli\Purli()) ->setUserAgent('curl 7.16.1 (i386-portbld-freebsd6.2) libcurl/7.16.1 OpenSSL/0.9.7m zlib/1.2.3') ->setHeader('Content-Type', 'text/xml') ->setParams($data) ->post('http://www.example.com') ->close(); $response = $purli->response(); print_r($response->asArray()); } catch(\Exception $e) { echo $e->getMessage(); }
使用PUT方法发送和接收JSON数据
try { $data = array('foo' => 'bar'); $json = json_encode($data); $purli = (new \Purli\Purli(\Purli\Purli::SOCKET)) ->setConnectionTimeout(3) ->setHeader('Content-Type', 'application/json') ->setParams($json) ->put('http://www.example.com') ->close(); $response = $purli->response(); print_r($response->asObject()); } catch(\Exception $e) { echo $e->getMessage(); }
使用代理服务器进行请求
try { $purli = (new \Purli\Purli()); $purli ->setProxy(PROXY_ADDRESS, PROXY_PORT) ->get('http://www.example.com') ->close(); $response = $purli->response(); echo $response->asText(); } catch(\Exception $e) { echo $e->getMessage(); }
设置自定义CURL选项
如果安装了CURL扩展,默认情况下Purli将使用它。您始终可以获取CURL处理器对象并设置自定义选项,如果需要更多灵活性。
try { $purli = (new \Purli\Purli()); if ($purli->getHandlerType() === \Purli\Purli::CURL) { curl_setopt($purli->getHandler(), CURLOPT_TIMEOUT, 10); } $purli ->get('http://www.example.com') ->close(); $response = $purli->response(); echo $response->asText(); } catch(\Exception $e) { echo $e->getMessage(); }
运行测试
Purli使用PHPUnit进行测试,导航到项目根目录并运行命令。
cd tests
phpunit
作者
Milos Kajnaco milos@caenazzo.com
贡献者
Nemanja Nikolic nemanja@massvision.net
许可证
Purli在MIT公共许可证下发布。