Java 未知主机异常

2022-09-02 11:18:52

我正在尝试通过HTTP Post请求从我的Android应用程序访问 textalertapp.com。但是我收到未知主机错误。任何人都可以帮我解决这个问题。

12-13 01:30:16.058: WARN/System.err(473): java.net.UnknownHostException: textalertapp.com
    12-13 01:30:16.088: WARN/System.err(473):     at java.net.InetAddress.lookupHostByName(InetAddress.java:513)
    12-13 01:30:16.088: WARN/System.err(473):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:278)
    12-13 01:30:16.088: WARN/System.err(473):     at java.net.InetAddress.getAllByName(InetAddress.java:242)
    12-13 01:30:16.088: WARN/System.err(473):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136)
    12-13 01:30:16.099: WARN/System.err(473):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    12-13 01:30:16.099: WARN/System.err(473):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    12-13 01:30:16.099: WARN/System.err(473):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:348)
    12-13 01:30:16.108: WARN/System.err(473):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
    12-13 01:30:16.118: WARN/System.err(473):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
    12-13 01:30:16.118: WARN/System.err(473):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
    12-13 01:30:16.118: WARN/System.err(473):     at com.textalert.alertCollection.getAlerts(alertCollection.java:46)
    12-13 01:30:16.118: WARN/System.err(473):     at com.textalert.alertsList$1.run(alertsList.java:81)
    12-13 01:30:16.128: WARN/System.err(473):     at java.lang.Thread.run(Thread.java:1096)

代码是

 HttpClient client = new DefaultHttpClient();
                String postURL = "http://textalertapp.com/androidCode/?api=AlertManager&method=getAlerts";
                HttpPost post = new HttpPost(postURL); 

                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("user", "kris"));
                params.add(new BasicNameValuePair("pass", "xyz"));
                UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8);
                post.setEntity(ent);
                HttpResponse responsePOST = client.execute(post);  
                HttpEntity resEntity = responsePOST.getEntity();  
                if (resEntity != null) {    
                    Log.i("RESPONSE",EntityUtils.toString(resEntity));
                }

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

我刚刚在清单文件中添加了此行。问题已解决


答案 2

这意味着您的主机是未知的,即不存在或无法访问。再次检查您的IP,并检查您是否可以从设备获取此IP。此 IP 可能存在于本地网络中,无法从外部访问。

如果 IP 存在,请检查防火墙定义。防火墙也会产生同样的效果。


推荐