Java开发中怎么向URL地址发送Http请求,根据返回的状态码判断成功失败?

Java开发中在Action读取到数据库中的URL地址,怎么向URL地址发送Http请求,根据返回的状态码判断成功失败?
代码如下:
public void MyJob() {
List list = systemMonitoringManager.getSystemMonitoringList(systemMonitoringVO);
for(int i=0;i<list.size();i++){
SystemMonitoringVO vo = (SystemMonitoringVO)list.get(i);
String Url = vo.getUrl();
//怎么发送Http请求来判断连接成功还是失败?
}
}

数据库服务器上不一定开了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个回答  2013-02-05
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解析就可以了追问

有没有详细代码例子?最好有注释,谢谢了

追答

呵呵,这已经是很详细的代码了,哪如果具体的不会局部百度一下搜搜,应该不难

本回答被提问者和网友采纳
第2个回答  2013-02-05
如果list.size()==0的话,应该是连
接失败了,不知道我的理解是否正
确,仅供参考。
第3个回答  2013-02-05
在服务端返回状态码