- 浏览: 288307 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
86614009:
如何在service层,如何获取绑定到当前线程的entitna ...
使用spring的OpenEntityManagerInView -
yajunyajun2011:
好帖子 怎么没人顶呢
Java 正则表达式最大,最小匹配问题 -
xtuali:
能说明一下,你的nutch是哪个版本的吗?谢谢!
搜索引擎Nutch源代码研究之一 网页抓取(1) -
dongmusic:
需要学习这么多的东西,吐血中...
如何提高Java开发能力 -
jiminsc:
cool
LDAP 验证、添加、修改、删除(转)
这是去年年底一直想解决的问题(这么简单的问题,现在才解决,说出来有点丢人,唉。。。)。昨天终于知道怎么解决了,原来是就是用了HttpURLConnection类的getHeaderField("location");方法。然后就是简单而又繁琐的拼接URL了,下面是我的项目中自己写的一个方法,大家见笑了。。。
public static Entity_Page DownLoadContent(String str) {
// System.out.println(" str : " + str);
Entity_Page page = new Entity_Page();
String content = null;
URL url = null;
BufferedReader br = null;
HttpURLConnection conn = null;
InputStream is = null;
String encode = null;
boolean judge = false;
String title = "";
int responsecode;
StringBuffer sb = null;
try {
str = ToChinese(str);
url = new URL(str);
conn = (HttpURLConnection) url.openConnection();
// HttpURLConnection.setFollowRedirects(true);
conn.setFollowRedirects(true);
conn.setRequestMethod("GET");
conn.setRequestProperty("User_Agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");
conn.connect();
responsecode = conn.getResponseCode();
if (responsecode == 200) {
is = conn.getInputStream(); //error
encode = GetEncode(url); //得到该页面的编码
br = new BufferedReader(new InputStreamReader(is, encode));
sb = new StringBuffer();
String line = "";
while ( (line = br.readLine()) != null) {
sb.append(line);
}
content = sb.toString();
page.encode = encode; //该网页的编码方式
page.content = content; //该网页的内容
page.title = title;
page.seed = str;
// page.judge = judge; //是否为完整的网页
}
else if (responsecode == 300 || responsecode == 301 ||
responsecode == 302 || responsecode == 304) {
String s = str.substring(7);
String u = null;
if (s.indexOf('/') != -1) {
u = "http://" + s.substring(0, s.indexOf('/')) +
conn.getHeaderField("location");
// System.out.println("11========== : " + u);
}
else {
u = "http://" + s + conn.getHeaderField("location");
// System.out.println("22========== : " + u);
}
URL uu = new URL(u); //u为最终重定向后的URL
conn = (HttpURLConnection) uu.openConnection();
conn.connect();
InputStream stream = conn.getInputStream();
encode = GetEncode(uu);
br = new BufferedReader(new InputStreamReader(stream, encode));
sb = new StringBuffer();
String line = "";
while ( (line = br.readLine()) != null) {
sb.append(line);
}
content = sb.toString();
page.encode = encode; //该网页的编码方式
page.content = content; //该网页的内容
page.title = title;
page.seed = u; //设置重定向后的URL
}
else {
System.err.println("Connection error : " + responsecode + " " +
url);
return null;
}
}
catch (Exception ex) {
// System.out.println("????????? " + url);
// ex.printStackTrace(); ////////////需要处理
System.err.println("Connection timed out : " + url);
}
finally {
try {
if (sb != null) {
sb = null;
}
if (br != null) {
br.close();
br = null;
}
if (is != null) {
is.close();
is = null;
}
if (conn != null) {
conn.disconnect();
conn = null;
}
}
catch (IOException ex1) {
ex1.printStackTrace();
}
}
return page;
}
网上查资料时,都说用HttpClient好使,但我没试验成功。。。还得继续努力呀。。。
发表评论
-
Java中,对List存放的对象按指定属性排序
2014-06-27 18:15 1013转载的,试用过了,很好! /** * ... -
Interface和抽象类的应用
2012-09-23 19:36 788一个类可以(继承)实 ... -
linux下java开发应掌握的命令
2012-09-23 19:22 1119java开发,由于其很多应用都是发布在Linux操作系统上,因 ... -
Java程序员面试中的多线程问题
2012-06-01 16:55 9190.Java 中多线程同步是什 ... -
Java中的数据存储
2011-11-24 21:31 935在JAVA中,有六个不同的 ... -
Java经典收录,一直更新。。。
2011-11-17 13:45 753Thinking in Java,,敏捷软件开发原则、实践与设 ... -
如何提高Java开发能力
2011-11-15 19:17 13881.你需要精通面向对象 ... -
java.util.ResourceBundle使用详解
2011-08-28 16:32 703一、认识国际化资源文件 这个类提供软件国际化的捷径。通 ... -
抽象类、接口的区别 和 抽象类可以不实现接口的全部方法
2011-07-05 11:05 1034抽象类和接口的区别: ... -
RMI规范--第八章 stub/skeleton 接口(转贴)
2011-06-27 18:33 2035另一篇文章也很好,收藏了: http://ajava ... -
将Unicode字符转换成中文
2011-02-27 13:34 896前段时间写的一个将Unicode字符转换为中文的方法,分享下, ... -
JAVA虚拟机几个命令行参数说明
2011-02-22 10:13 785一、运行class文件执行带main方法的class文件, ... -
Java数组与容器类分析资料--数组、List和Set、Map
2011-02-22 09:47 1463Java容器分析--数组 数组是Java语言内置的 ... -
常用的 Http Response Code代码
2011-01-11 06:04 886100 Continue 初始的请求已经 ... -
IIS状态代码的含义
2011-01-10 18:59 691概要当用户试图通过HTTP或文件传输协议(FTP)访问一台正在 ... -
Iterator 引发的NoSuchElementException
2011-01-10 15:55 907while (it.hasNext()) { ... -
Firefox的IFrame编程
2010-11-12 10:54 687//最近碰到了很多ie和firefox的js问题,发现主要集 ... -
String和InputStream、Reader 的转换
2010-10-25 08:59 8601、 String --> InputStr ... -
java读取网站内容的两种方法
2010-10-24 19:36 7141,HttpClient利用apache的虚拟客户端包获取某个 ... -
主题:subString方法中的小“陷阱”
2010-10-19 21:19 945今天在工作中遇到一个问题,花了很久才解决,现在与大家分享一下。 ...
相关推荐
以下是一个简单的示例,演示如何使用`URL`类打开一个网页: ```java import java.net.*; public class NetDemo_7 { public static void main(String[] args) throws MalformedURLException, IOException { // ...
本人原创测试了百度,搜狗,360搜索都可以获取重定向后的真实地址,直接运行就可以,也可以根据自己项目具体修改功能。java使用HttpURLConnection获取百度搜狗360搜索链接重定向真实目标链接地址url。
2. **重定向处理**:在Web服务中,URL重定向是常见的现象,当访问一个URL时,服务器可能会返回301或302状态码,引导浏览器或客户端去访问另一个URL。这个工具能够跟踪这些重定向,直到获取到最终的目标URL。 3. **...
当用户通过浏览器或其他客户端工具输入一个URL来访问图片时,实际上是发送了一个HTTP GET请求到服务器。服务器接收到请求后,根据请求的URL路径查找对应的资源,如果是图片,则返回HTTP响应,其中包含状态码(如200...
重定向是一种让浏览器重新发起一个新请求的技术。它通过修改客户端的URL来实现页面跳转,通常用于实现跨域跳转。 **特点:** - **地址栏变化:** 使用重定向时,浏览器地址栏中的URL会变更为重定向后的URL。 - **新...
在Java编程语言中,对网页进行重新定向是Web开发中的一个常见操作,主要涉及服务器端的处理。这通常用于登录验证、错误处理、URL重写等场景。在本篇文章中,我们将深入探讨如何使用Java来实现这个功能。 首先,我们...
请求重定向是指将客户端的请求重新定向到另一个 URL 的过程。这个过程通过 HttpServletResponse 接口提供的 sendRedirect() 方法实现。sendRedirect() 方法将生成 302 响应码和 Location 响应头,从而通知客户端去...
### 采集需要登录后的网页(重定向后Cookie丢失问题) 在网络爬虫开发过程中,经常会遇到需要登录后才能访问的目标网站。这些网站为了保护用户隐私和数据安全,通常会在用户通过身份验证后设置Cookie来保持登录状态...
内部重定向是服务器在处理请求时,将请求转发到另一个资源,而这个过程对用户来说是透明的,浏览器的URL不会改变。这种技术常用于实现业务逻辑的分层或者在不同控制器之间传递信息。 死循环,顾名思义,是指程序...
在HTML中实现页面刷新时重定向到另一个网页或网站域名,主要是通过两种方式来完成:Meta刷新和JavaScript。这两种方法都是纯前端技术,无需后台语言如JAVA或PHP的配合。 一、Meta刷新重定向 Meta刷新是HTML元元素...
Spring Cloud URL重定向及转发代码实例是Spring Cloud框架中一个重要的知识点,本文将详细介绍Spring Cloud URL重定向及转发代码实例的使用方法和示例代码。 一、重定向(Redirect) 重定向是指将用户的请求从一个...
Java后台重定向到另一个项目的方法是Java开发中一个常见的问题,本文将详细介绍三种常用的方法,帮助开发者快速解决问题。 方法一:使用ModelAndView跳转 在Spring MVC框架中,可以使用ModelAndView对象来实现...
* 请求转发过程结束后,浏览器地址栏保持初始的 URL 地址不变,而 sendRedirect() 方法重定向的访问过程结束后,浏览器地址栏中显示的 URL 会发生改变,由初始的 URL 地址变成重定向的目标 URL。 * forward() 方法的...
执行此行代码后,服务器会向客户端发送一个302状态码和新的URL,客户端浏览器接收到此响应后会自动访问新的URL。 ##### 3. 工作原理 当执行 `sendRedirect` 方法时,服务器端会返回一个带有新URL的响应给客户端,...
在IT行业中,URL重定向是一种常见的...它的灵活性和易用性使其成为开发者在处理URL重定向需求时的首选方案。通过理解其工作原理和配置方法,你可以有效地管理和优化网站的URL结构,提升用户体验和搜索引擎的友好度。
Java 中的 URL 重写是一种常用的技术,它可以将原始的 URL 转换为另一个 URL,以便达到特定的目的。例如,隐藏真实的 URL、实现 URL 的加密、实现 URL 的重定向等。在 Java 中,有多种方式可以实现 URL 重写,包括...
重定向是指将用户的请求从一个页面转移到另一个页面的过程。在Java中,可以使用Response对象的setStatus()方法和setHeader()方法来实现重定向。 setStatus()方法用于设置响应的状态码,例如302表示临时重定向。set...
4. 如果选择了重定向,浏览器将发起新的请求到指定的URL,可能是另一个Action,以处理登录后的操作。 5. 若选择转发,服务器会直接将请求传递给一个内部资源,如JSP页面,而用户在浏览器中看到的仍然是原始的登录URL...
- **原理**:重定向则是让客户端浏览器发起一个新的HTTP请求,访问服务器指定的新URL。服务器通过`Response`对象的`sendRedirect()`方法告诉浏览器跳转到新的URL。 - **特点**: - 请求URL改变,浏览器会显示新的...