数据库服务器上不一定开了80端口呀,个人感觉判断网络是否通,还是使用Ping命令的好,如下:
String ip = "127.0.0.1"; // 使用正则,从Url中解析出数据库IP地址
System.out.println("ip = " + ip);
Process process = Runtime.getRuntime().exec("ping " + ip); // 执行Ping命令
DataInputStream dis = new DataInputStream(process.getInputStream());
byte[] buffer = new byte[1024 * 1000];
int len = dis.read(buffer);
StringBuffer sb = new StringBuffer();
while (len > 0) {
sb.append(new String(buffer, 0, len));
len = dis.read(buffer);
}
System.out.println("ping result = " + sb.toString());
// 从Ping的结果中,解析出丢失率
Pattern p = Pattern.compile("(?<=\\().*%");
Matcher m = p.matcher(sb.toString());
boolean flag = true; // 网络是否通
if (m.find()) {
String str = m.group();
System.out.println("lost = " + str);
// 如果丢失率等于100%,则说明网络不通
flag = str.equals("100%") ? false : true;
}
System.out.println("the net is " + flag);
1.用 HttpURLConnection urlConnection创建连接
2.
byte[] b = requestMessage.getBytes("utf-8");
OutputStream out = urlConnection.getOutputStream();
out.write(b);
out.flush();
out.close();
3.OutputStream 发送出去
4.用InputStream接收
5.
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
while ((len = in.read(buffer)) > 0)
outstream.write(buffer, 0, len);
outstream.close();
byte[] bRes = outstream.toByteArray()
判断如果
bRes == null || bRes.length == 0
则连接超时
你指的是如果连接响应如果没有异常证明连接上了,如果想取请求的url内容就用把bRes解析就可以了
如果list.size()==0的话,应该是连
接失败了,不知道我的理解是否正
确,仅供参考。
在服务端返回状态码