Как получить удаленный контент веб -страницы с помощью http -запроса Drupal?
-
16-10-2019 - |
Вопрос
Хотелось бы увидеть несколько примеров по получению удаленного контента веб -страницы с помощью 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). Вот цитата об этом (со страницы проекта модуля):
Это библиотечный модуль. Он не предоставляет функциональности коробки, кроме предоставления API, который могут использовать другие модули.
API WebClient разделится на три основных компонента:
- WebClient
- Форматер WebClient
- WebClient Proxy
Все вышеперечисленные компоненты были переведены в отдельные модули, чтобы разработчики могли создавать зависимость от необходимой им функциональности.
Я использую этот код без проблем.
$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;
}