أود أن أرى بعض الأمثلة حول الحصول على محتوى صفحة ويب عن بعد مع طلب drupal http طلب. لدي الكثير من الأمثلة بسهولة مع Google مع curl ، ولكن لم أجد واحدًا مع هذا 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). هنا اقتباس عنها (من صفحة مشروع الوحدة):
هذه وحدة مكتبة. لا يوفر أي وظيفة خارج الصندوق ، ثم يوفر واجهة برمجة تطبيقات يمكن للوحدات الأخرى استخدامها.
يتم تقسيم Webclient API إلى ثلاثة مكونات رئيسية:
- العميل على شبكة الإنترنت
- منسقو 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;
}