Вы должны знать, что веб-сервис API геокодирования также возвращает статус в ответе. Статус показывает, есть ли в ответе действительный элемент или что-то пошло не так, и у вас нет результата.
Просмотрите документацию https://developers.google.com/maps/documentation/geocoding/intro#StatusCodes , и вы увидите, что возможны следующие статусы
Итак, прежде чем пытаться получить доступ к $dataset->results[0]
, сначала проверьте значение $dataset->status
. Если это «ОК», вы можете безопасно получить результаты, в противном случае правильно обработайте код ошибки.
Фрагмент кода может быть
$dataset = json_decode($jsonResponse);
if ($dataset->status == "OK") {
if (isset($dataset->results[0])) {
$latitude = $dataset->results[0]->geometry->location->lat;
$longitude = $dataset->results[0]->geometry->location->lng;
}
} elseif ($dataset->status == "ZERO_RESULTS") {
//TODO: process zero results response
} elseif ($dataset->status == "OVER_DAILY_LIMIT" {
//TODO: process over daily quota
} elseif ($dataset->status == "OVER_QUERY_LIMIT" {
//TODO: process over QPS quota
} elseif ($dataset->status == "REQUEST_DENIED" {
//TODO: process request denied
} elseif ($dataset->status == "INVALID_REQUEST" {
//TODO: process invalid request response
} elseif ($dataset->status == "UNKNOWN_ERROR" {
//TODO: process unknown error response
}
Надеюсь, это поможет!
Я неправильно, или большинство ответов не относится к делу?
Для ответа точно на вопрос, да, можно отправить список разделенных запятой значений параметру POST. Честно говоря, я просто сделал быструю попытку со Сценарием PHP, но я не вижу, почему Java вел бы себя по-другому. Одна точка с запросами POST точно, что у Вас есть намного меньше ограничений на синтаксис (никакая потребность выйти = & или такой).
Поэтому, если Вы объясняете больше в деталях, что "не работает", возможно, мы можем помочь Вам больше.
Можно сделать это как избранный вход формы:
URL? param=value1& param=value2& param=value3
В зависимости от Вас язык и библиотека необходимо смочь получить массив значений для параметрического усилителя.
<час>, Например, с asp.net mvc я делаю это для получения массива строк:
string[] values = Request.Form.GetValues("param");
Fionn является правильным. Используйте
url?param=value1¶m=value2¶m=value3
для устанавливания нескольких значений к единственному параметру. Для чтения значений в Servlet/JSP, можно использовать
String[] values = request.getParameterValues("param");
в минимальном 1 параметре запроса сообщения должен быть там в списке параметров. Если Вы добавляете параметр для запроса затем этого работа привычки. для этого u должен отправить параметр как скрытое поле формы. Или попытайтесь использовать следующий код
функция makePOSTRequest (URL, параметры) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// set type accordingly to anticipated content type
//http_request.overrideMimeType('text/xml');
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('POST', url, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
}
Набор, чтобы иметь Ваш параметр поставляет несколько значений путем именования его как массив. Вместо того, чтобы назвать вход "идентификатором", назовите его "идентификатором []"
<form method="post">
<select multiple name="id[]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="submit" value="send">
</form>
При обработке, не забудьте извлекать массив значений, отправленных именованным параметром.
ДОБЕРИТЕСЬ и POST имеют две различных цели. От записи HTTP Википедии:
ДОБИРАЮТСЯ
Запросы представление указанного ресурса. Обратите внимание, что ДОБИРАЮТСЯ, не должен использоваться для операций, которые вызывают побочные эффекты, такие как использование его для того, чтобы принять меры в веб-приложениях. Одна причина этого, это ДОБИРАЕТСЯ, может использоваться произвольно роботами или поисковыми роботами, которые не должны должны быть рассматривать побочные эффекты, которые должен вызвать запрос. Посмотрите надежные методы ниже.
POST
Отправляет данные, которые будут обработаны (например, от HTML-формы) к определенному ресурсу. Данные включены в тело запроса. Это может привести к созданию нового ресурса или обновлениям существующих ресурсов или обоих.
В основном, необходимо использовать, ДОБИРАЮТСЯ, чтобы, ну, в общем, ПОЛУЧИТЬ информацию и POST для любых действий, которые изменяют состояние сервера, такого как добавление новых записей.