Drupal HTTPリクエストでリモートWebページコンテンツを取得する方法は?
-
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;
}
所属していません drupal.stackexchange