Android无法解析主机

时间:2012-02-19 16:03:48

标签: android client

我是Android新手,所以这个问题可能有一个简单的答案(我可能错过了一些东西)。我试图在Google的Resting框架的帮助下创建一个REST客户端(因为Jersey似乎不起作用)。当我尝试运行客户端时,我收到此警告:

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>

如果您需要任何其他信息,请告诉我们。

  • 在警告中,我用“mi.ip”取代了我的IP(故意这样做,但原来是没事的。)

2 个答案:

答案 0 :(得分:1)

如果您发布与服务器连接的代码段,则可以更轻松地为您提供帮助。 但是,您的问题可能是创建要调用的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);

因此,如果使用无效或错误的URI调用execute方法,则可能会出现问题。

或者,有时,当您打开AVD并更改正在使用的网络时,例如,走出办公室并开始使用家庭wifi,你应该遇到这样的问题。

答案 1 :(得分:0)

我相信我和OP有同样的问题,我知道这是一个老问题,但无论如何都会发表我的发现。

问题是像get()这样的Resting框架方法通过其连接助手传递url,并希望你提供端口作为第二个参数。

所以以OP为例,而不是:

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

你的电话应该是:

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

希望能帮助某人:)