use*_*154 8 php codeigniter guzzle
我第一次使用BOTH Guzzle和Codeigniter 3.0.我也承认我第一次使用php命名空间.
我试图根据文档中提供的示例使用Guzzle做一个非常简单的get请求.(Guzzle文档没有提及codeigniter).
Guzzle文件位于application/class/guzzle
这是我非常简单的控制器
public function indey () {
$data = array();
$data['main_content'] = "hiview";
$data['title'] = "Data Analyzer - Welcome";
$data['xas'] = $this->guzzler();
$this->load->view('template', $data);
}
private function guzzler() {
$client = new GuzzleHttp\Client;
$response = $client->get('http://guzzlephp.org');
return $response;
}
Run Code Online (Sandbox Code Playgroud)
这是我的简单看法
<div class="row">
<div class="col-xs-12">
<h1>Hi</h1>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<h1><?php var_dump($xas); ?></h1>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误
遇到PHP错误严重性:错误消息:找不到类'GuzzleHttp\Client'文件名:controllers/hello.php行号:22 Backtrace:
在 application/config/config.php
$ config ['composer_autoload'] = FCPATH.'vendor / autoload.php';
对我来说很好
小智 4
您应该在需要时将其加载到控制器方法中,或者如果需要,自动加载它。我使用前者:首先:在应用程序文件夹中使用composer安装它:
composer require guzzlehttp/guzzle:~6.0
Run Code Online (Sandbox Code Playgroud)
第二:让 CI 自动加载 Composer (applications/config/config.php)
$config['composer_autoload'] = TRUE;
Run Code Online (Sandbox Code Playgroud)
然后在你的控制器中
public function guzzler_get($url, $uri)
{
$client = new GuzzleHttp\Client(['base_uri' => $url]);
$response = $client->get($uri);
// print_r($response); // print out response
// print out headers:
// foreach ($response->getHeaders() as $name => $values) {
// echo $name . ': ' . implode(', ', $values) . "\r\n";
// }
return $response;
}
Run Code Online (Sandbox Code Playgroud)
使用:
$your_var = $this->guzzler_get('http://httpbin.org', '/html');
Run Code Online (Sandbox Code Playgroud)
您现在已经在变量中得到了响应$your_var。其余的,请查看文档。否则,请为您的 http 请求使用“更友好”的方法/库,例如CodeIgniter-cURL或Requests
| 归档时间: |
|
| 查看次数: |
14206 次 |
| 最近记录: |