Android 1.6 httpresponse не включает в себя заголовок местоположения - PullRequest
0 голосов
/ 17 декабря 2010

У меня есть приложение Android 1.6, которое я пытаюсь получить заголовок местоположения ответа HTTP GET. однако, когда я вызываю getLastHeader ("location"), он возвращает ноль. я даже захожу в переменную ответа через отладчик, и заголовок местоположения не отправляется. Мне нужно сделать это на произвольном сайте, но использование Google для тестирования по-прежнему приводит к неудаче. я думал, что местоположение было заголовком по умолчанию для чтения? Android 1.6 не читает заголовок местоположения? мой код выглядит следующим образом:

<code>HttpClient httpClient = DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://google.com");
try
{
 HttpResponse response = httpClient.execute(httpGet);
 if(response.getStatusLine().getStatusCode() == 200)
 {
  Header h = response.getLastHeader("location");
  String location = h.getValue();
 }
}

Помощь очень важна :) Я либо ищу решение, чтобы узнать местоположение, либо объяснение, почему я не получаю его: /

1 Ответ

2 голосов
/ 17 декабря 2010

Из HTTP RFC , точка 14.30

Поле заголовка ответа Location используется для перенаправления получателя на местоположение, отличное от Request-URI для завершения запроса или выявление нового ресурса. За 201 (Создано) ответов, Местоположение это новый ресурс, который был создан по запросу. Для 3xx ответы, местоположение ДОЛЖНО указать предпочитаемый URI сервера для автоматического перенаправления на ресурс. Значение поля состоит из один абсолютный URI.

Таким образом, если ваш статус ответа 200, заголовок Location не должен быть установлен, следовательно, у вас есть нулевое значение.

Вы также можете проверить, используя Firebug, чтобы проверить возвращаемый заголовок.

...