最近在搞远程访问数据的事,加载远程页面 ,开始想用jsp include加载页面会很方便 但是发现jsp的不论动态还是静态include都不可以加载远程数据,只能访问本站内部网页,
这个方案就被放弃了,然后是用js加载,也折腾了一天总算加载进来了,但是发现查看源码里面没有加载的页面内容只是把页面的现象加载进来了,实际内容没有,这不是我想要的,我要google能抓到我的加载的内容,所以js方法也被pass掉,最后用java读取远程文件吧内容放到前台,这样就可以了,不过开始用的httpurl这回出现乱码,也放弃了,最后有一个同事告诉我用httpcomponents-client 很好用,试了试,开始也是问题很多,比如说 因为版本冲突导致action出错,这些解决来之后显示很好,解决来我的问题。分享一下我的代码供大家参考,大家共同学习:
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpGet httpGet = new HttpGet("http://targethost/homepage");
CloseableHttpResponse response1 = httpclient.execute(httpGet);
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpGet httpGet = new HttpGet("http://targethost/homepage");
CloseableHttpResponse response1 = httpclient.execute(httpGet);
try {
System.out.println(response1.getStatusLine());//请求是否成功
HttpEntity entity1 = response1.getEntity();//得到请求的尸体
InputStream is= entity1.getContent();//得到请求的内容
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "/n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} finally {
response1.close();
}
}catch(Exception e){
e.printStackTrace();
}
sb即使请求页面的内容,可以找一个参数接收,然后传给前台。一定不要出现版本冲突,不然真的不知道错在哪里了,我现在用的都是4.5的包。一定要检查一下自己的包是否有冲突,提醒大家。希望能帮到大家大家