Intereting Posts
Исключение одиночных кавычек в PHP / MySQL не работает .htaccess переписать правила для нескольких параметров получение последнего вставленного идентификатора строки с PDO (не подходящий результат) Создайте сеанс во время вызова ajax (php-xajax) Проверьте, сохранена ли модель laravel или выполнен запрос. Получить текст из тега опций в PHP Как вызвать определенную функцию в скрипте PHP через Ajax? Magento Connect Manager & ftp записывает разрешения на файл Примечание. Массив для преобразования строк в C: \ xampp \ htdocs \ example \ echo.php в строке 8 Array Правильно вызывать базу данных из модели в приложении MVC? Laravel 5.2 Вспышка сеанса не работает даже с веб-промежуточным программным обеспечением таблица обновляет пустое пространство, когда пользователь ничего не вводит в текстовое поле mysql_real_escape_string VS добавляет Ассоциативные массивы Почему PHPUnit не выполняет функции отчета о покрытии кода, которые не вызываются?

Геолокация Google с использованием информации о ячейках памяти Curl 400 Bad request PHP

Я пытаюсь получить широту и долготу от информации ячейки башни с помощью геолокации Google api . Он требует действительного JSON с информацией, такой как MCC, MNC, cellId, lac и т. Д., Мой запрос на отправку PHP выглядит так.

<?php header("Access-Control-Allow-Origin: *"); $mcc = $_POST["mcc"]; $mnc = $_POST["mnc"]; $cellId = $_POST["cellId"]; $lac = $_POST["lac"]; $post_array = array( "cellId" => (int) $cellId, "locationAreaCode" => (int) $lac, "mobileCountryCode" => (int) $mcc, "mobileNetworkCode" => (int) $mnc, ); $post_data = json_encode(array('cellTowers' => array($post_array))); echo $post_data; $url = "https://www.googleapis.com/geolocation/v1/geolocate?key=".$api_key; // not including api key here but its there in my code $ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_URL => $url, CURLOPT_POST => true, CURLOPT_HEADER => false, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => 2, CURLOPT_HTTPHEADER => array( 'Content-Type: application/json' ), CURLOPT_POSTFIELDS => $post_data )); $result = curl_exec($ch); echo "Result: ".$result; curl_close($ch); ?> 

Однако я получаю сообщение об ошибке в ответе. Ошибка показана ниже.

 Result: { "error": { "errors": [ { "domain": "geolocation", "reason": "invalidRequest", "message": "Bad Request" } ], "code": 400, "message": "Bad Request" } } 

Я думал, что мой JSON был не в правильном формате, но он работал со следующим выполнением командной строки, так что это не может быть проблемой.

 $ curl -d @your_filename.json -H "Content-Type: application/json" -i "https://www.googleapis.com/geolocation/v1/geolocate?key=API_KEY" 

Вышеприведенная команда в терминале дает правильную длину волны и долготу с тем же JSON в файле. Что я делаю не так ?