Codeigniter中的PHP请求库

Edw*_*ard 10 php codeigniter

我正在使用PHP 的请求库(http://requests.ryanmccue.info/).

我安装了composer并添加了以下Json配置composer.json:

{
   "require": {
      "rmccue/requests": ">=1.0"
   },
     "autoload": {
     "psr-0":{"Requests" : "library/"}
     }
}
Run Code Online (Sandbox Code Playgroud)

所以在我的控制器中我试图通过库运行请求,我得到:

 public function index()
        {
Requests::register_autoloader();
$headers = array('Accept' => 'application/json');
$options = array('auth' => array('user', 'pass'));
$request = Requests::get('https://api.github.com/gists', $headers, $options);

var_dump($request->status_code);
// int(200)

var_dump($request->headers['content-type']);
// string(31) "application/json; charset=utf-8"

var_dump($request->body);   

}
Run Code Online (Sandbox Code Playgroud)

:第34行的../application/controllers/test.php中找不到"请求"类

Gop*_*lan 21

还有就是用一种简单的方式为PHP请求.

你可以按照这几个简单的步骤.

步骤1

解压缩最新的PHP zip请求并复制库目录的内容,{codeigniter_directory}/application/third_party/Request-{version}例如,您有PHP 1.6.0的请求,然后您的CI项目正在/usr/sites/www/myciproject将文件复制到/usr/sites/www/myciproject/application/third_party/Requests-1.6.0.

第2步

创建一个文件,PHPRequests.php{codeigniter_directory}/application/libraries这个内容

<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');  

require_once APPPATH."/third_party/Requests-1.6.0/Requests.php";
class PHPRequests {
    public function __construct() {
       Requests::register_autoloader();
    }
}
Run Code Online (Sandbox Code Playgroud)

第3步

在您的控制器中,您可以通过加载我们在上一步中创建的PHPRequests库来使用请求.

$this->load->library('PHPRequests');
Run Code Online (Sandbox Code Playgroud)

喜欢这个测试功能

public function test()
{
    $this->load->library('PHPRequests');
    $response = Requests::get('https://github.com/timeline.json');
    var_dump($response->body);
}
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助.

  • 感谢您一步一步的帮助.有用 :) (3认同)

Bre*_*ker 5

您无需将代码autoload块添加到中composer.json,包括代码块中的库require将使用软件包提供的自动加载配置。

通常,您使用自动加载块来配置通过composer软件包安装的代码的加载。

如果还没有,还需要requirecomposer自动加载文件

require 'vendor/autoload.php';
Run Code Online (Sandbox Code Playgroud)

需要编写程序库的代码之前运行的地方(通常在“引导程序”进程中)

并且,您需要运行composer install以实际安装配置的依赖项。