Helo伙计们,如果这篇文章已经被回答,请原谅我,因为我尝试了很多搜索术语,现在我发现自己没有搜索术语的想法。
我想要的是:
我的Android项目中有一个字符串数组。在这个数组中,我有很多网址。有些实际上是网络服务器,有些则没有。我正在尝试迭代这个数组并使用不拒绝连接的服务器的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());
}
我想要的只是:如果服务器拒绝连接,只需继续尝试,但异常停止整个应用程序
答案 0 :(得分: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();
}
}