2016-11-07 51 views
4

我正在開發一個Drupal 8自定義模塊。我在任何節點類型中都有兩個字段(url和text html字段)。這是該模塊預期的功能:使用httpClient - Guzzle for Drupal 8自定義模塊

該模塊將刮掉「url字段」的頁面並複製html代碼,將它們粘貼到「文本html字段」(該字段隱藏在管理頁面中)。在每一個cron run中,這個字段的內容都會被壓制。

我使用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 

我需要的指導開始。 感謝您的幫助。

回答

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');