Использование elevation-api.io с запросом POST в PHP - PullRequest
0 голосов
/ 16 февраля 2020

В настоящее время я пытаюсь получить информацию о высоте в радиусе 60 миль от указанной c точки. У меня есть все точки широты и долготы, но я пытаюсь использовать API-интерфейс elevation-api.io для извлечения данных высот с помощью запроса POST.

Я протестировал API с https://reqbin.com/, тестер POST-запроса. Это был необработанный ввод:

POST /api/elevation HTTP/1.1
Host: elevation-api.io
ELEVATION-API-KEY: 2vdJ9d0e6IndKV33m1if18GPgX9-V9
Content-Type: application/json
Content-Length: 34

{"points":[[39.90974,-106.17188]]}

Результаты:

{
    "elevations": [{
        "lat": 39.90974,
        "lon": -106.17188,
        "elevation": 2768.5
    }],
    "resolution": "5000m"
}

Однако, когда я использую следующий код из моего приложения PHP, я получаю другие результаты. Мой код:

$key = //removed
$url = "https://elevation-api.io/api/elevation";
$data = array('points' => [[39.90974,-106.17188]]);
var_dump(json_encode($data));
$options = array(
    'HTTP/1.1' => array(
        'method' => 'POST',
        'header' => "Host: elevation-api.io\r\nELEVATION-API-KEY: " . $key . "\r\nContent-Type: application/json\r\nContent-Length: ".strlen(json_encode($data))."\r\n",
        'content' => json_encode($data)
    )
);
$context = stream_context_create($options);
var_dump($options);
$result = file_get_contents($url, false, $context);
if($result === FALSE){
    throw new \Exception("Error getting result for terrain points.");
}

var_dump($result);

Полученный результат:

string(34) "{"points":[[39.90974,-106.17188]]}"
array(1) {
  ["HTTP/1.1"]=>
  array(3) {
    ["method"]=>
    string(4) "POST"
    ["header"]=>
    string(127) "Host: elevation-api.io
ELEVATION-API-KEY: *REMOVED*
Content-Type: application/json
Content-Length: 34
"
    ["content"]=>
    string(34) "{"points":[[39.90974,-106.17188]]}"
  }
}
string(219) "{"message":"Please provide some coordinates! ie. http://elevation-api.io/api/elevation?points=(39.90974,-106.17188),(62.52417,10.02487)&key=<your-key>,  although a key isn't needed for 5km resolution and req/min < 500"}"

Я готов поспорить, что ошибка очень глупая, но я уже несколько часов пробую разные вещи, и нет радость. Спасибо за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...