承接 kajna/purli 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

kajna/purli

Composer 安装命令:

composer require kajna/purli

包简介

Lightweight library with Object-Oriented interface for sending HTTP requests

README 文档

README

DUB Version

Purli (PHP Url Interface) is the lightweight library with the object-oriented interface for sending HTTP requests.

Installing

This package is available via Composer:

{
  "require": {
    "kajna/purli": "dev-master"
  }
}

Usage examples

Fetching data using GET method and CURL handler

Minimal example, Purli by default uses CURL handler if available otherwise fallback to the socket.

try {
    $purli = (new \Purli\Purli())
        ->get('http://www.example.com')
        ->close();

    $response = $purli->response();

    echo $response->asText();
} catch(\Exception $e) {
    echo $e->getMessage();
}

Fetching data using GET method and socket handler

If explicitly set Purli will use PHP sockets to make requests regardless if CURL is installed or not

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();
}

Fetching data using POST method

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();
}

Sending and receiving XML data using POST method

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();
}

Sending and receiving JSON data using PUT method

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();
}

Using proxy server to make request

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();
}

Setting custom CURL option

If CURL extension is installed by default Purli will use it, you can always get CURL handler object and set custom option if more flexibility is needed

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();
}

Running tests

Purli uses PHPUnit for testing, navigate to project root directory and run command:

cd tests
phpunit

Author

Milos Kajnaco milos@caenazzo.com

Contributors

Nemanja Nikolic nemanja@massvision.net

Licence

Purli is released under the MIT public license.

统计信息

  • 总下载量: 5.37k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 2
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-09-25

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固