0

Helo 伙计们,如果这篇文章已经被回答,请原谅我,因为我尝试了很多搜索词,现在我发现自己对搜索词一无所知。

我想要的是:

我的 Android 项目中有一个字符串数组。在这个数组中,我有很多 url。有些实际上是网络服务器,有些则不是。我正在尝试迭代这个数组并仅使用未拒绝连接的服务器的 url 来制作其他数组。但是我总是收到拒绝连接异常并且应用程序停止。

如何测试 url 以知道它是否有效?再来一次,对不起,如果这个问题已经存在。在问这里之前,我真的很想搜索这个。

编辑:

我会放一些我的代码示例

try{
  for(int i = 0; i <= 255; i++){
    String ip = "http://192.168.0." + i;

    HttpGet get = new HttpGet(ip);

    if(!get.isAborted()){
      String response = httpclient.execute(get);//The exception is here
      //..... The code continues .....
    }

  }
}catch(HttpHostConnectionException e){
  Log.e("HttpHostConnectionException", e.getMessage());
}

我想要的是:如果服务器拒绝连接,请继续尝试,但异常会停止整个应用程序

4

1 回答 1

0

你可以试试这个。涉及的 jar 文件来自Apache-site

public static void main(String[] args) throws Exception{
    CloseableHttpClient httpclient = HttpClients.createDefault();
    try {
        for(int i = 0; i <= 255; i++){
            String ip = "http://192.168.0." + i;
            HttpGet httpget = new HttpGet(ip);

            // Execute HTTP request
            System.out.println("Execute request:" + httpget.getURI());
            CloseableHttpResponse response = httpclient.execute(httpget);
            try {
                // Get the status code of responding from servers
                int status = response.getStatusLine().getStatusCode();

                if (status >= 200 && status < 300) {
                    // the server accept your request, you can do something. 
                    // For example, display the source code of web page.

                    // Get hold of the response entity
                    HttpEntity entity = response.getEntity();
                    System.out.println( entity != null ? EntityUtils.toString(entity) : null );
                } else {
                    // the server refuse your accessing.
                    // do something...

                    continue;
                }
            } finally {
                response.close();
            }
        }
    } finally {
        httpclient.close();
    }
}
于 2013-12-19T15:25:34.040 回答