d4f
Kaffee? Wo?
Was?
HttpClient ist eine PHP-Klasse welche HTTP-Abrufe automatisiert und es somit ermoeglichst in Kombination mit SimpleHtmlDom binnen kuerzester Zeit eine bestehende Webseite zu automatisieren (API-fizieren) oder eine Kommunikation zwischen 2 Webdiensten zu realisieren.
Wie?
Der HttpClient stellt eine von einem ueblichen Webbrowser kaum zu unterscheidende HTTP-Anfrage an den Server und behandelt vollautomatisiert relative URL's, URL-Weiterleitungen (Location Header), HTTP-Status Handler, HTTP-Authentifizierung sowie die Uebermittlung von POST und GET Variablen. Ausserdem werden erhaltene Cookies gespeichert und bei spaeteren Aufrufen der Webseite wieder uebertragen. Redirects von einer Domain auf eine andere sowie Unterstuetzung von SSLv2 und TLS (SSLv3) runden die Klasse ab.
Hinweis: In der Webseite enthaltene Elemente (Bilder, CSS, i/Frames, Objekte, ...) werden NICHT automatisiert abgerufen
Wozu?
Ein moeglicher Einsatzzweck ist die bereits eingangs beschriebene schnelle, kostenguenstige und unkomplizierte API-fizierung bestehender Webseiten zwecks Automatisierung, Aufbau eines Mobile-Portales oder White-labeling.
Beispielweise ist binnen weniger Minuten das Anlegen eines Kunden im Froxlor-Webhostingpanel vollstaendig automatisiert.
Lizenz
Die hier veroeffentlichte Kopie des Skriptes ist unter der MIT 'Expat' Lizenz (FOSS) ohne weitere Gegenleistung, Gebuehren oder Einschraenkung vollstaendig zum privaten und kommerziellen Gebrauch freigegeben.
Natuerlich freue ich mich ueber jedgliche Fixes und Erweiterungen.
Benutzung
Die Klasse besteht aus 6 public Array-Variablen und 4 public Funktionen.
Alle Variablen sind im Quellcode annotiert, somit erklaere ich hier nur kurz die Funktionen
get( [string] $uri )
Laedt die Webseite mittels GET und gibt ein bool zurueck je nach Erfolg
post( [string] $uri , [array] $post)
Laedt die Webseite mittels POST und gibt ein bool zurueck je nach Erfolg.
Das enthaltende POST-Array wird als Formular-Daten dabei an den Server uebergeben.
request( [string] $method, [string] $uri, [array|bool] $data, ([bool] $first) )
$method definiert die HTTP-Methode (zB HEAD, GET, POST)
Laedt die Webseite mittels $method und gibt ein bool zurueck je nach Erfolg.
Wenn $data nicht auf bool=>false ist, wird ein POST-Formular an den Server uebergeben, ohne Ruecksicht auf die HTTP-Methode.
Wenn $first spezifiert ist und auf bool=>false ist, wird die Anfrage als Redirect der letzten Anfrage gehandhabt.
urlToParts($url)
Loest relative URL's in Bezug auf den Schluss-Pfad nach allen Redirects der letzten Anfrage auf (sofern nicht absolut) und gibt ein Array mit folgenden Informationen zurueck:
Wo?
Public GIT repository auf GitHUB:
https://github.com/d4fseeker/Misc-classes/tree/httpclient
Bitte...
Ich bin fuer jedgliche Kritik, Hinweise und Code-Contributions dankbar.
HttpClient ist eine PHP-Klasse welche HTTP-Abrufe automatisiert und es somit ermoeglichst in Kombination mit SimpleHtmlDom binnen kuerzester Zeit eine bestehende Webseite zu automatisieren (API-fizieren) oder eine Kommunikation zwischen 2 Webdiensten zu realisieren.
Wie?
Der HttpClient stellt eine von einem ueblichen Webbrowser kaum zu unterscheidende HTTP-Anfrage an den Server und behandelt vollautomatisiert relative URL's, URL-Weiterleitungen (Location Header), HTTP-Status Handler, HTTP-Authentifizierung sowie die Uebermittlung von POST und GET Variablen. Ausserdem werden erhaltene Cookies gespeichert und bei spaeteren Aufrufen der Webseite wieder uebertragen. Redirects von einer Domain auf eine andere sowie Unterstuetzung von SSLv2 und TLS (SSLv3) runden die Klasse ab.
Hinweis: In der Webseite enthaltene Elemente (Bilder, CSS, i/Frames, Objekte, ...) werden NICHT automatisiert abgerufen
Wozu?
Ein moeglicher Einsatzzweck ist die bereits eingangs beschriebene schnelle, kostenguenstige und unkomplizierte API-fizierung bestehender Webseiten zwecks Automatisierung, Aufbau eines Mobile-Portales oder White-labeling.
Beispielweise ist binnen weniger Minuten das Anlegen eines Kunden im Froxlor-Webhostingpanel vollstaendig automatisiert.
Lizenz
Die hier veroeffentlichte Kopie des Skriptes ist unter der MIT 'Expat' Lizenz (FOSS) ohne weitere Gegenleistung, Gebuehren oder Einschraenkung vollstaendig zum privaten und kommerziellen Gebrauch freigegeben.
Natuerlich freue ich mich ueber jedgliche Fixes und Erweiterungen.
Benutzung
Die Klasse besteht aus 6 public Array-Variablen und 4 public Funktionen.
Alle Variablen sind im Quellcode annotiert, somit erklaere ich hier nur kurz die Funktionen
get( [string] $uri )
Laedt die Webseite mittels GET und gibt ein bool zurueck je nach Erfolg
post( [string] $uri , [array] $post)
Laedt die Webseite mittels POST und gibt ein bool zurueck je nach Erfolg.
Das enthaltende POST-Array wird als Formular-Daten dabei an den Server uebergeben.
request( [string] $method, [string] $uri, [array|bool] $data, ([bool] $first) )
$method definiert die HTTP-Methode (zB HEAD, GET, POST)
Laedt die Webseite mittels $method und gibt ein bool zurueck je nach Erfolg.
Wenn $data nicht auf bool=>false ist, wird ein POST-Formular an den Server uebergeben, ohne Ruecksicht auf die HTTP-Methode.
Wenn $first spezifiert ist und auf bool=>false ist, wird die Anfrage als Redirect der letzten Anfrage gehandhabt.
urlToParts($url)
Loest relative URL's in Bezug auf den Schluss-Pfad nach allen Redirects der letzten Anfrage auf (sofern nicht absolut) und gibt ein Array mit folgenden Informationen zurueck:
- ssl [bool]
Definiert ob eine Anfrage als SSL oder nicht ablaufen soll (Gibt aber nicht die zu verwendende SSL-Version (2 oder 3) zurueck da es experimentell fest zu stellen ist! - domain [String]
FQDN der Webseite (HTTP Host) - path [String]
Pfad auf der Domain ohne GET-Parameter - query [String]
GET-Parameter
Wo?
Public GIT repository auf GitHUB:
https://github.com/d4fseeker/Misc-classes/tree/httpclient
Bitte...
Ich bin fuer jedgliche Kritik, Hinweise und Code-Contributions dankbar.