2011-03-22 27 views
10

Próbuję uzyskać odpowiedź json z usługi geokodowania google. Używam PHP. Próbowałem z fopenem, a następnie przeczytałem w innym pytaniu stackoverflow, że powinienem użyć file_get_contents, ale też nie działało. Następnie szukam i znalazłem kogoś na innym forum, który powiedział, że będę lepszym rozwiązaniem, jeśli użyję CURL, więc zmieniłem kod i nie działa. We wszystkich przypadkach otrzymałem komunikat "Błąd 400: nieprawidłowe żądanie." Twój klient wysłał nieprawidłowo sformułowane lub nielegalne żądanie. "Usługa geokodowania Google zwraca błąd 400 Zły wniosek

Mój kod to:

$jsonUrl = "http://maps.googleapis.com/maps/api/geocode/json?address=" . $cityName . "&sensor=false"; 

    $geocurl = curl_init(); 
    curl_setopt($geocurl, CURLOPT_URL, $jsonUrl); 
    curl_setopt($geocurl, CURLOPT_HEADER,0); //Change this to a 1 to return headers 
    curl_setopt($geocurl, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); 
    curl_setopt($geocurl, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($geocurl, CURLOPT_RETURNTRANSFER, 1); 

    $geofile = curl_exec($geocurl); 

Potem wydrukować zawartość i dostałem komunikat o błędzie.

Wszelkie pomysły?

Dziękuję bardzo.

Odpowiedz

20

Cóż, wymyśliłem to.

zmienna My $ cityname było to:

$cityName = "Monterrey, NL"; 

białej przestrzeni pomiędzy przecinkiem i "NL". Kiedyś str_replace zmienić „” do „+” i uzyskać prawidłowy adres URL jak w dokumentacji:

http://code.google.com/intl/es/apis/maps/documentation/geocoding/

Pozdrawiam i dziękuję za pomoc!

+5

Alternatywnie można zawijać wszystkie zmienne w 'urlencode()' –

1

myślę tracisz API-Key

Btw, ja po prostu użyć file_get_contents() aby geokodera Google, ponieważ nie istnieją żadne specjalne nagłówki trzeba ustawić lub http-przekierowuje trzeba przestrzegać, itp.

+0

Witam. Dzięki za twoją odpowiedź. To nie zadziałało. Dzięki jeszcze raz! – Chuy

0

FYI, właśnie wpadłem na to i mój problem polegał na tym, że nieprawidłowo wpisałem parametr zapytania "adres" (wpisałem go jako "adres" zamiast "adres").

Powiązane problemy