неизвестное исключение хоста от андроида к GAE - PullRequest
1 голос
/ 23 августа 2010

Я пытаюсь отправить сообщение с Android на GAE, получаю неизвестное исключение хоста.Вот мой код:

HttpClient httpclient = new DefaultHttpClient();  
    HttpPost httppost = new HttpPost("http://silver-kites.appspot.com");  

    try {  
        // Add your data 
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);  
        nameValuePairs.add(new BasicNameValuePair("abc", "123"));  
        nameValuePairs.add(new BasicNameValuePair("xyz", "456"));  
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));  

        // Execute HTTP Post Request  
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        if(entity != null){
          InputStream inputStream = entity.getContent();
          ResponseText.setText(convertStreamToString(inputStream));
        }
    } catch (ClientProtocolException e) {
        ResponseText.setText(e.getMessage()); 
    } catch (IOException e) {
        ResponseText.setText(e.getMessage());
    }

Когда я пытаюсь подключиться к локальному хосту: 8888 получаю отказано в соединенииЯ не знаю, как пройти через это.Помоги мне.

Ответы [ 4 ]

2 голосов
/ 24 августа 2010

Я тоже пытался, все еще получая исключение Unknown Host в Android. Нужно ли выполнять какие-либо настройки для доступа к HTTP? или в эмуляторах http не будет работать?

Я установил <uses-permission android:name="android.permission.INTERNET"></uses-permission> в манифесте Android xml. Все еще нет надежд.

Кто-нибудь помогает? Я зарегистрировался в GAE, и мой запрос туда не дошел.

Вот мой код,

HttpClient httpclient = new DefaultHttpClient();  
    HttpPost httppost = new HttpPost("http://silver-kites.appspot.com/silverscores");  

    try {  

        nameValuePairs.add(new BasicNameValuePair("name", "JP"));
        nameValuePairs.add(new BasicNameValuePair("seconds", "123"));

        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));  

        // Execute HTTP Post Request  
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        if(entity != null){
          InputStream inputStream = entity.getContent();
          ResponseText.setText(convertStreamToString(inputStream));
        }
    } catch (ClientProtocolException e) {
        ResponseText.setText(e.getMessage()); 
    } catch (IOException e) {
        ResponseText.setText(e.getMessage());
    }
1 голос
/ 06 января 2011

У меня точно такая же проблема.

После некоторого поиска в Google и переполнения стека :) Я нашел решение:

  1. Проверьте, есть ли у вашего эмулятора сетевое подключение (сетьзначок в панели уведомлений) - моего эмулятора не было, потому что брандмауэр заблокировал его :(. Я нашел этот совет здесь .

  2. Проверьте, не установлено ли сетевое разрешениедля вашего приложения, добавив строку

    <uses-permission android:name="android.permission.INTERNET"></uses-permission>

    в приложении * файл 1018 *.

Согласно Эмулятор сети IP 10.0.2.2 следует использовать вместо localhost / 127.0.0.1.

localhost / 127.0.0.1 - это IP-адрес устройства Android, а не машина разработчика.

0 голосов
/ 28 августа 2010

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

0 голосов
/ 23 августа 2010

Попробуйте использовать следующую (имя, значение) пару

nameValuePairs.add(new BasicNameValuePair("name", "123"));  
nameValuePairs.add(new BasicNameValuePair("seconds", "456"));

Теперь вы не получите исключение недопустимых параметров, но ответом для этого POST является «Ошибка сервера», вы можете проверить с помощью GAE оэта ошибка.

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