it-swarm.asia

كيفية الحصول على محتوى صفحة ويب عن بعد مع طلب drupal http طلب؟

أود أن أرى بعض الأمثلة حول الحصول على محتوى صفحة ويب عن بعد مع طلب drupal http طلب. لدي الكثير من الأمثلة بسهولة مع Google مع curl ، ولكن لم أجد واحدًا مع هذا drupal دالة.

أيضا ، هل سيكون CURL أفضل للحصول على محتوى بعيد؟

6
giorgio79

أولاً ، يمكنك قراءة وثائق حول 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>');
10
yvan

يمكنك أيضًا تجربة استخدام Webclient الوحدة النمطية (لـ D7). هنا اقتباس عنها (من صفحة مشروع الوحدة):

هذه وحدة مكتبة. لا يوفر أي وظيفة خارج الصندوق ، ثم يوفر واجهة برمجة تطبيقات يمكن للوحدات الأخرى استخدامها.

يتم تقسيم Webclient API إلى ثلاثة مكونات رئيسية:

  • العميل على شبكة الإنترنت
  • منسقو Webclient
  • وكيل Webclient

تمت ترجمة جميع المكونات المذكورة أعلاه إلى وحدات منفصلة بحيث يمكن للمطورين إنشاء تبعية مع الوظائف التي يحتاجونها.

1
Vacilando

أنا باستخدام هذا الرمز دون أي مشكلة.

$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;
}
0
Gucho Ca