Drupal HTTPリクエストでリモートWebページコンテンツを取得する方法は?

drupal.stackexchange https://drupal.stackexchange.com/questions/12669

  •  16-10-2019
  •  | 
  •  

質問

Drupal HTTPリクエストでリモートWebページコンテンツを取得する例をいくつか見たいです。 Curlを使用したGoogleで簡単に簡単に例がありますが、このDrupal機能ではまだ見つかりません。

また、リモートコンテンツを取得するにはCurlの方が良いでしょうか?

役に立ちましたか?

解決

まず、ドキュメントを読むことができます drupal_http_request() それはかなりよく文書化されており、それはあなたを助けます。

しかし、簡単なアプリケーションのために、あなたはそれをそのようにすることができます。

<?php
$result = drupal_http_request('http://google.com/');
if (in_array( $result->code, array(200, 304))) {
  // Use $result->data for the content
}
else {
  // Error $result->code
}

// Also you can see all content from $result with
// if you had installed Devel Module and enable it
// dsm($result)
// or simply like that drupal_set_message('<pre>' . print_r($result, 1) . '</pre>');

他のヒント

使用することもできます webclient モジュール(D7の場合)。これについての引用は次のとおりです(モジュールのプロジェクトページから):

これはライブラリモジュールです。他のモジュールが使用できるAPIを提供する以外は、ボックス外の機能を提供しません。

WebClient APIは、3つの主要なコンポーネントに分類されます。

  • webclient
  • WebClientフォーマッタ
  • WebClientプロキシ

上記のすべてのコンポーネントは、開発者が必要な機能に依存関係を作成できるように、モジュールを分類するように翻訳されました。

問題なくこのコードを使用しています。

$base_url = 'http://route to Ws';
$data = array(
  'key' => 'foo';
  'mail' => $mail,
);

$data = drupal_json_encode($data);
$options = array(
'headers' => array(
  'Content-Type' => 'application/json',
),
'method' => 'POST',
'data' => $data
);
$response = drupal_http_request($base_url, $options);
$data = json_decode($response->data);
// Check if login was successful
if ($response->status == 'valid' {
return TRUE;
}
ライセンス: CC-BY-SA帰属
所属していません drupal.stackexchange
scroll top