ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
1434
1434
EMPFEHLEN
-
14.02.07 18:54 #1
- Registriert seit
- Jan 2006
- Ort
- Remscheid
- Beiträge
- 59
Hallo zusammen,
ich möchte wie der Titel schon sagt, einen HTTP-Request an einen Webservice richten. Um ein wenig konkreter zu werden: ich möchte den Geocoder von Google nutzen, um den Längen- und Breitengrad zu einem Ort als Response zu erhalten.
Leider scheitere ich daran, wie ich mit PHP diesen Request absetzen muss. In der Dokumentation von Google steht, dass der Aufruf wie folgt aussehen muss:
Würde man als output jetzt xml wählen, bekäme man als response die Daten als XML geliefert.PHP-Code:http://maps.google.com/maps/geo?q=Ort&output=Format&key=Schluessel
Nur wie mache ich den Aufruf über PHP. Habe irgendwo gelesen, für sowas müsste ich mit einem Proxy arbeiten... Klingt nicht so, als würde es das einfacher machen...
Danke für eure Hilfe!
Gruß
John
-
14.02.07 21:02 #2
- Registriert seit
- Dec 2004
- Beiträge
- 666
Hallo,
Versuchs doch einfach mit file_get_contents() (wenn url_allow_fopen auf on ist) oder mit fsockopen():
mal mit file_get_contents():
PHP-Code:$response = file_get_contents("http://maps.google.com/maps/geo?q=Ort&output=xml&key=key");
Nichts kann existieren ohne Ordnung - Nichts kann entstehen ohne Chaos
(Albert Einstein)
-
Funktionen wie file_get_contents() oder fopen(), also Dateisystemfunktionen, wuerde ich in diesem Fall nicht nutzen. Das Problem dabei ist, wie bereits erwaehnt wurde, die Abhaengigkeit von allow_url_fopen.
Der Weg ueber fsockopen() ist hier der weitaus sicherere, jedoch auch etwas komplizierter.
Aber moeglicherweise kann Dir meine HTTP-Klasse dabei etwas helfen.PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
15.02.07 18:55 #4
- Registriert seit
- Jan 2006
- Ort
- Remscheid
- Beiträge
- 59
@birnkammer:
Wäre super gewesen, wenn dein Vorschlag funktioniert hätte. Ich bekomme zwar eine Antwort vom Webservice, allerdings nur, dass es so nucht geht. Ihm fehlt scheinbar ein Header oder was weiß ich...
@Dennis:
Ich bin froh, dass es Menschen wie dich gibt, die viel Zeit in die Entwicklung solcher Scripts stecken und diese dann frei zur Verfügung stellen! Erstmal ein großes Danke dafür!
Allerdings verstehe ich trotz aufmerksamen Durchlesens deiner Anleitung nicht mal ansatzweise wie ich das in meinem Fall nutzen kann...
Vielleicht könntest du mir kurz erklären, wie ich die Funktion mit der Adresse und den drei Variablen aufrufen muss, damit es hoffentlich klappt...
Vielen Dank im Voraus!
Gruß
John
-
15.02.07 19:41 #5
- Registriert seit
- Jan 2006
- Ort
- Remscheid
- Beiträge
- 59
Ha - da konnte man ja noch weiter nach unten Scrollen in deinem Tutorial... (Wer scrollen kann ist klar im Vorteil!)
Ich habe versucht dein Beispiel umzubauen, so wie ich es verstanden habe:
Ich erhalte zwar ein paar Infos über den Server, auf dem ich das Script dann laufen lasse, aber nicht die gewünschte Antwort von Google...PHP-Code:<?php
require("httpconnection.class.php");
$http=new httpconnection("localhost");
$data=$http->get("http://maps.google.com/maps/geo","keq=GoogleKey&q=gesuchterOrt&output=xml", false);
echo nl2br(print_r($data['head'],true));
echo $data['body'];
unset($http);
?>
Die zweite Zeile verstehe ich noch nicht ganz - ist das mit dem localhost da richtig, oder muss ich das mit irgendwas ersetzen?
-
Du musst dich mit dem Host „maps.google.com“ verbinden und nicht mit „localhost“. Und der URL-Pfad ist dann einfach nur „/maps/geo“.
Markus Wulftange
-
15.02.07 21:13 #7
- Registriert seit
- Jan 2006
- Ort
- Remscheid
- Beiträge
- 59
Ah - richtig! Man habe ich heute ein Brett vor dem Kopf!
So - jetzt bekomme ich im body die Antwort vom Goggle-Server, aber die ist noch nicht richtig.
Was ich bei Google rausfinden konnte ist, dass der Server wohl guckt was bei der Abfrage im Header steht. Vielleicht ist meine Frage ja dumm, aber was steht denn da in dem Header, wenn ich die Anfrage so abschickt. Für Google muss der wohl entweder leer sein, oder eindeutig zeigen, dass die Anfrage von der Domain kommt für die der Schlüssel registriert wurde...
Ähnliche Themen
-
Empfehlung für Implementierung: Http Request an einen WebService
Von yigiter im Forum JavaAntworten: 0Letzter Beitrag: 13.03.10, 14:46 -
WebService Request mit Umlaute/Sonderzeichen -> Bad Request
Von StehtimSchilf im Forum .NET Web und KommunikationAntworten: 4Letzter Beitrag: 19.02.10, 12:23 -
HTTP-Request mit QT
Von cesupa im Forum C/C++Antworten: 3Letzter Beitrag: 22.02.08, 19:25 -
Http-request ?!
Von mIschKo im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 03.10.07, 18:32 -
Http Request
Von NanoNuna im Forum PHPAntworten: 2Letzter Beitrag: 02.04.07, 10:55





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren