it-swarm.com.de

Wie bekomme ich Remote-Webseiteninhalte mit drupal http request?)

Ich würde gerne einige Beispiele zum Abrufen von Remote-Webseiteninhalten mit drupal http-Anfrage sehen. Ich habe viele Beispiele leicht mit Google mit Curl, aber noch keine mit dieser drupal Funktion zu finden.

Wäre CURL auch besser, um Remote-Inhalte zu erhalten?

6
giorgio79

Zuerst können Sie die Dokumentation über drupal_http_request () lesen. Sie ist ziemlich gut dokumentiert und wird Ihnen helfen.

Aber für eine einfache Anwendung können Sie es einfach so machen.

<?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

Sie können auch versuchen, das Modul Webclient (für D7) zu verwenden. Hier ist ein Zitat dazu (von der Projektseite des Moduls):

Dies ist ein Bibliotheksmodul. Es bietet keine sofort einsatzbereiten Funktionen außer einer API, die andere Module verwenden können.

Die Webclient-API ist in drei Hauptkomponenten unterteilt:

  • Webclient
  • Webclient-Formatierer
  • Webclient-Proxy

Alle oben genannten Komponenten wurden in separate Module übersetzt, damit Entwickler eine Abhängigkeit mit der von ihnen benötigten Funktionalität erstellen können.

1
Vacilando

Ich benutze diesen Code ohne Probleme.

$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