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

Java开发中在Action读取到数据库中的URL地址,怎么向URL地址发送Http请求,根据返回的状态码判断成功失败?代码如下:publicvoidMyJob(){Li... 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请求来判断连接成功还是失败?
}
}
展开
 我来答
wangkeheng
2013-02-05 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:108万
展开全部
数据库服务器上不一定开了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);
古道烟雲
2013-02-05
知道答主
回答量:6
采纳率:0%
帮助的人:3.4万
展开全部
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解析就可以了
追问
有没有详细代码例子?最好有注释,谢谢了
追答
呵呵,这已经是很详细的代码了,哪如果具体的不会局部百度一下搜搜,应该不难
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wang729356368
2013-02-05 · TA获得超过3236个赞
知道大有可为答主
回答量:1284
采纳率:60%
帮助的人:740万
展开全部
如果list.size()==0的话,应该是连
接失败了,不知道我的理解是否正
确,仅供参考。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
778142659
2013-02-05
知道答主
回答量:18
采纳率:0%
帮助的人:7.4万
展开全部
在服务端返回状态码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式