使用httpClient - Guzzle for Drupal 8自定义模块

时间:2016-11-07 03:11:50

标签: httpclient guzzle drupal-8

我正在开发一个Drupal 8自定义模块。我在任何节点类型中都有两个字段(url和text html字段)。这是模块预期的功能:

该模块将刮取“url字段”的页面并复制html代码以将其粘贴到“text html字段”中(此字段隐藏在管理页面中)。在每个cron运行中,这个字段内容都将被粉碎。

我使用Drupal::httpClient(或Guzzle)发出我的http请求。

$client = \Drupal::httpClient();
$request = $client->get('https://github.com/codeafrica/github-africa');
$response = $request->getBody();

这是我的第一个Drupal 8开发模块。要开发此模块,我是否需要创建自定义Http客户端来创建自己的Http客户端?在我的模块库中,我必须实现复制和粘贴html代码的功能。控制器可以这样做吗?

这是我的自定义模块的结构:

custom_module.info.yml
custom_module.module
custom_module.routing.yml
src/Controller
src/Http  

我需要指导才能开始。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

当我在处理类似的事情时,我遇到了这个问题,所以我分享了我能够让这个工作的两种方式。

我不确定他们中的任何一个是否是最佳方式:)

在我的custom_module.module

  1. 方法1

    $client = new \GuzzleHttp\Client();
    $url = 'yourURL';
    $res = $client->request('GET', $url);
    $res_body = $res->getBody();
    
  2. 或方法2

    use Guzzle\Http\Client;
    $client = new Client('yourURL');