Сервис геокодирования Google возвращает ошибку 400 Bad Request
Я пытался получить ответ json от службы геокодирования google. Я использую PHP. Я пытался с fopen, затем я прочитал в другом вопросе stackoverflow, что я должен использовать file_get_contents, но тоже не работал. Затем я продолжаю поиск и нашел кого-то на другом форуме, кто сказал, что я буду лучшим решением, если я использую CURL, поэтому я изменил свой код и не работает. Во всех случаях я получил " Error 400: Bad Request. Ваш клиент выдал неправильного или незаконного запрос."
мой код такой:
$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);
затем я печатаю содержимое и получаю сообщение об ошибке.
какие идеи?
большое спасибо.
3 ответов
Ну, я понял.
моя переменная $cityName была такой:
$cityName = "Monterrey, NL";
пробел между запятой и "NL". Я использовал str_replace, чтобы изменить "" на " + " и получить действительный url-адрес, как в документации:
http://code.google.com/intl/es/apis/maps/documentation/geocoding/
привет и большое спасибо за вашу помощь!
Я думаю, что вам не хватает API-ключа
кстати, я просто использую file_get_contents () для геокодера Google, так как нет специальных заголовков, которые вы должны установить, или HTTP-перенаправления, которые вы должны следовать и т. д.
FYI, я просто столкнулся с этим, и моя проблема заключалась в том, что я неправильно набрал параметр строки запроса "адрес" (я набрал его как "адрес", а не "адрес").