Android общаться с веб-страницей, получить ошибку 502 - PullRequest
1 голос
/ 01 марта 2010

У меня есть друг, который написал сервлет, который просто обслуживает XML (только XML, без SOAP и т. Д., Content-Type: text/xml).

Теперь я пытаюсь получить доступ к нему с помощью Android. Я могу получить доступ к странице нормально, если я перехожу на страницу с Firefox, но если я получаю доступ к ней с помощью приложения для Android, я получаю HTTP 502 error.

Код, который я использую:

AlertDialog alertDialog;
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet("x");
try {
    HttpResponse response = httpClient.execute(httpGet, localContext);
    alertDialog = new AlertDialog.Builder(view.getContext()).create();
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
           return;
        }
    });
    alertDialog.setTitle("Response");
    alertDialog.setMessage(response.getStatusLine().toString());
    alertDialog.show();

    alertDialog.setMessage(EntityUtils.toString(response.getEntity()));
    alertDialog.show();
} catch (IOException e) {
    alertDialog = new AlertDialog.Builder(view.getContext()).create();
    alertDialog.setTitle("Sorry");
    alertDialog.setMessage("There was a problem connecting to the login-service.");
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int which) {
             return;
         }
     });
    alertDialog.show();
}

И есть ли рекомендуемые способы анализа XML? Например, если там был определенный тег, такой как заголовок, сообщение, ...

1 Ответ

0 голосов
/ 04 октября 2010

Для проблемы с соединением я бы предложил следующее: Кажется, что есть проблема с прокси или с методом, который вы пытаетесь подключить. Обычно это прокси, который не может переслать запрос на конкретный сервер. Но в случае, если вы можете просматривать сайт через FireFox, это не должно быть проблемой. Вы можете попробовать использовать FireBug Addon для анализа запроса на этот сервер. В любом случае, попробуйте этот метод вместо HttpGet:

HttpReq request = Http.getInstance().createRequest();
request.setUrl("URL");
request.setMethod("GET");
request.execute();
message = request.getResult();

Другая вещь, которую вы могли бы попробовать, это использовать HttpGet и поиграть с методом setFollowRedirects (true / false). Может быть, вы должны выключить его или включить явно.

Для решения проблемы XML я бы предложил этот сайт: http://www.ibm.com/developerworks/xml/library/x-android/, который помог мне много раз проанализировать некоторые RSS-каналы. Лично я предпочитаю SAX Parser на этом сайте (они представляют немного техники).

...