Android не удается разрешить хост - PullRequest
7 голосов
/ 19 февраля 2012

Я новичок в Android, поэтому на этот вопрос может быть простой ответ (возможно, я что-то пропустил). Я пытаюсь сделать REST-клиент с помощью Resting Framework от Google (потому что Джерси, похоже, не работает). Когда я пытаюсь запустить клиент, я получаю это предупреждение:

W/System.err(728): java.net.UnknownHostException: Unable to resolve host "my.ip:8080": No address associated with hostname

и затем я получаю несколько исключений, но я думаю, что это коренная причина.

У меня есть интернет-разрешение:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.maze.client"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".RestingClientActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

  • В предупреждении я заменил свой IP на "mi.ip" (это сделано намеренно, но в оригинале все в порядке).

Ответы [ 2 ]

1 голос
/ 11 октября 2012

Если вы разместите фрагмент кода, где вы делаете подключение к серверу, вам будет легче помочь. Но, вероятно, ваша проблема заключается в создании URI для вызова. Пример:

URI uri = URIUtils.createURI("http", "your-ip", 8080, "/path/to/webservice", 
        URLEncodedUtils.format(params, "UTF-8"), null);
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(uri);
response = client.execute(get);

Итак, если вы вызываете метод execute с неверным или неправильным URI, у вас может возникнуть проблема.

Или, иногда, когда вы держите AVD открытым и меняете используемую сеть, например, выходите из офиса и начинаете использовать домашний Wi-Fi, вы должны столкнуться с такой проблемой, как у вас.

0 голосов
/ 22 сентября 2014

Я считаю, что у меня была та же проблема, что и у OP, я знаю, что это старый вопрос, но все равно опубликую свои выводы.

Проблема в том, что методы Resting Framework, такие как get (), пропускают URLего помощники по соединению, и ожидает, что вы предоставите порт в качестве второго параметра.

Итак, взяв пример OP вместо:

Resting.get('my.ip:8080');

ваш вызов должен быть:

Resting.get('my.ip', 8080)

Надеюсь, что кому-то поможет :)

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