- 浏览: 457203 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (229)
- gef (1)
- emf (0)
- rcp (2)
- 杂谈 (3)
- draw2d (2)
- xml (1)
- spring (16)
- osgi (1)
- jsp (6)
- hibernate (8)
- j2se (41)
- oracle (25)
- js (23)
- ognl (1)
- struts2 (2)
- webwork (1)
- prototype (1)
- dwr (3)
- struts (7)
- axis2 (3)
- axis1 (6)
- lucene (9)
- pop3 (1)
- aspectj (1)
- 网络协议 (6)
- bat (6)
- Quartz (5)
- jms (3)
- jndi (7)
- 网络爬虫 (7)
- acegi (1)
- linux (5)
- 缓存 (1)
- mysql (1)
- 在使用Java处理图形应用时,经常有人推荐设置 -Djava.awt.headless=true,具体含义和效果查了一下,记录在这里分享 Headless模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。 Headless模式虽然不是我们愿意见到的,但事实上我们却常常需要在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供Web服务的主机)往往可能缺少前述设备,但又需要使用他们提供的功能,生成相应的数据,以提供给客户端(如浏览器所在的配有相关的显示设备、键盘和鼠标的主 (1)
最新评论
-
hanmiao:
注释掉的那壹行少了壹個斜线,楼主...
servlet导出excel -
天下无贼:
Thread.Interrupt方法,只是通过扔出异常的方式, ...
Java Thread.interrupt 害人! 中断JAVA线程(zz) -
天下无贼:
呵呵,是你自己写错了。
Java Thread.interrupt 害人! 中断JAVA线程(zz) -
MO_ZHUANG_D:
如果是真的就感激不尽了
Axure RP教程 -
小嘴冰凉:
在开始执行的时候,如果是数据库存储,程序会从数据库中查job信 ...
quartz的持久化
今天跟TiGERTiAN谈到HttpURLConnection使用中的一个问题,就是当连接到的那个地址重定向到另一个地址时,怎么样获得那个重定向后的地址,弄了一下,找出了方法,结果起先我们两个都没想到,嘿嘿,在此记录一下。
HttpURLConnection是基于HTTP协议的,其底层通过socket通信实现。
下面来看一个例子:
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/** *//**
* 网页阅读器.
* @author <a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
* Creation date: 2007-10-9 - 上午11:47:26
*/
public class PageReader {
//连接对象
private static HttpURLConnection conn;
/** *//**
* 根据url连接某地址,并返回返回码.
* 返回码说明:
* 0~200为正常情况,其中200为OK
* 其余都为错误的情况,具体请参见w3
* @param urlStr 需连接的url字符串
*/
private int connect(String urlStr) throws Exception {
URL url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
System.out.println("返回码: " + conn.getResponseCode());
//如果定向的地址经过重定向,
//那么conn.getURL().toString()显示的是重定向后的地址
System.out.println(conn.getURL().toString());
return conn.getResponseCode();
}
/** *//**
* 读取网页的内容.
* @return 返回网页的内容
*/
private String readContents() throws Exception {
BufferedReader in = null;
StringBuffer sb = new StringBuffer();
in = new BufferedReader(new InputStreamReader(conn
.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
sb.append(inputLine);
sb.append("\n");
}
return sb.toString();
}
/** *//**
* 中断连接.
*/
private void disconnect() {
conn.disconnect();
}
/** *//**
* 测试方法
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
PageReader reader = new PageReader();
String url = "http://hexapixel.com/download.php?file=com.hexapixel.widgets.ribbon.alphatest.src.jar";
reader.connect(url);
String content = reader.readContents();
System.out.println("网页内容:" + content);
reader.disconnect();
}
}
呵呵,http://hexapixel.com/download.php?file=com.hexapixel.widgets.ribbon.alphatest.src.jar
这个地址会进行重定向,定向为:http://hexapixel.com/files/com.hexapixel.widgets.ribbon.alphatest.src.jar
TiGERTiAN想要获得的就是后面那个地址,运行该程序后,大家可以看到,System.out.println(conn.getURL().toString());打出的就是这个地址,可惜TiGERTiAN和我开始都没想到,看来是要多试试的。大家可以将那个url地址改成http://www.blogjava.net/amigoxie试试,这个程序实现的是一个很简单的网页阅读器呵!
1
发表评论
-
java泛型中的上界下界(上限下限) (转)
2013-01-23 18:02 1095java泛型中的super关键字不太常用,也不太好理解,今天又 ... -
Ant中过滤器的使用
2011-12-07 20:06 1002Ant中过滤器的使用 <?xml version=&q ... -
将实体声明和实体引用读入 DOM
2011-06-17 17:10 1295实体是一个声明,指定 ... -
多线程编程 实战篇 (四)
2010-12-07 17:48 1031[线程的中断] 不客气地 ... -
Java Thread.interrupt 害人! 中断JAVA线程(zz)
2010-12-07 17:42 3747程序是很简易的。然而,在编程人员面前,多线程呈现出了一组新的难 ... -
Flex+%2B+LCDS+%2B+Java+入门教程
2010-09-03 16:07 862Flex+LCDS+Java+入门教程 -
Flex完全自学入门手册
2010-09-03 13:08 891http://lichen.blog.51cto.com/69 ... -
java 5 多线程sun教程
2010-05-21 10:43 1199http://gceclub.sun.com.cn/Concu ... -
ibm的nio教程
2010-04-12 18:13 1148ibm的nio教程 -
cas单点登陆
2009-12-17 17:05 839http://blog.csdn.net/DL88250/ar ... -
CAS项目实践
2009-12-17 16:40 1143目的:使用单点登录系 ... -
Tomcat SSL配置大全
2009-12-17 16:13 1134由于配置CAS的单点登陆系统,需要先配置Tomcat的SSL, ... -
Thread.getContextClassLoader() 详解
2009-12-17 12:24 1206答 : 这个问题经常出现在编写框架代码 , 需要动态加载很多类 ... -
Session知识共享
2009-12-09 17:02 961摘要:虽然session机制在 ... -
跨应用程序的session共享
2009-12-09 15:03 2356原创 跨应用程序的session共享 收藏 常常有这样的情况 ... -
HTTP代理如何正确处理Cookie
2009-12-09 14:15 1548大多数的 Web 应用程序 ... -
使用HttpURLConnection类(利用sessionId保持会话
2009-12-09 11:19 5560TestServlet.java package n ... -
java多线程之 wait(),notify(),notifyAll()
2009-12-01 11:38 951java多线程之 wait(),notify(),notify ... -
Callable 和 Future
2009-12-01 11:28 1711天在书上看到callable和future这个两个东东,以前没 ... -
重载和覆盖
2009-11-17 10:02 875override可以翻译为覆盖,从字面就可以知道,它是覆盖了一 ...
相关推荐
当我们使用`HttpURLConnection`时,有几个重要的知识点需要了解: 1. **连接与读取超时**: 描述中提到的“设置超时”至关重要。默认情况下,`HttpURLConnection`没有设置超时,如果网络出现问题,程序可能会...
2. **打开连接**:然后,通过调用`openConnection()`方法,你可以得到一个`HttpURLConnection`实例: ```java HttpURLConnection connection = (HttpURLConnection) url.openConnection(); ``` 3. **设置请求...
以下是使用`HttpURLConnection`获取302重定向URL的步骤: 1. 创建一个`URL`对象,指定要请求的URL。 2. 使用`openConnection()`方法打开与该URL的连接,并将其转换为`HttpURLConnection`对象。 3. 设置`...
在本文中,我们将深入探讨`HttpURLConnection`的使用,包括GET和POST请求的实现,以及如何处理可能出现的乱码问题。 一、`HttpURLConnection`概述 `HttpURLConnection`是`URLConnection`的子类,专门用于处理HTTP...
要从指定的URL获取网页内容,首先需要创建一个`URL`对象,然后调用`openConnection()`方法得到`HttpURLConnection`实例。为了模拟浏览器(例如IE)的行为,可以设置`User-Agent`请求头。连接建立后,通过`...
但随着Android版本的更新,这些问题得到了解决,现在HttpURLConnection成为了首选。 在实际应用中,你可能还需要处理更多细节,例如添加请求头、处理超时、处理重定向、错误处理等。此外,对于现代Android应用,...
首先,创建`URL`对象,然后通过`openConnection()`得到`HttpURLConnection`实例。接着,可以设置请求方法(GET或POST),添加请求头,写入请求体,最后调用`connect()`方法建立连接,并通过`getInputStream()`或`...
HttpURLConnection支持HTTP/1.1协议,并且在Java 1.5之后得到了大幅增强,提供了更多的功能,如连接池、请求方法(GET、POST等)、设置请求头以及处理重定向。使用HttpURLConnection,你可以通过设置Socket超时来...
在Java环境中,我们可以使用HTTP请求库,如HttpURLConnection或Apache HttpClient,来发送请求并处理响应,实现与QQ登录接口的交互。 1. **OAuth2.0授权机制**: QQ登录基于OAuth2.0授权协议,它允许第三方应用在...
一种常见的方式是使用HttpURLConnection类,它是Java标准库的一部分,适用于Android。以下是一个简单的使用HttpURLConnection进行POST请求的例子: 1. 首先,设置请求URL和请求参数。例如: ```java String url = ...
下面是一个使用`HttpURLConnection`发送GET请求的例子: ```java try { // 定义地址 URL url = new URL("http://www.example.com"); // 打开连接 HttpURLConnection http = (HttpURLConnection) url.open...
2. **重定向用户授权**:用户访问应用时,应用会引导用户跳转到腾讯微博的授权页面,用户同意后,会被重定向回应用设定的回调地址,并附带一个授权码(Authorization Code)。 3. **获取Access Token**:应用使用...
在实际应用中,我们通常会使用Apache HttpClient库或OkHttp这样的第三方库来简化这个过程,它们提供了更高级的功能,如自动处理重定向、连接池、超时设置等。 例如,使用Apache HttpClient的代码片段可能如下: ``...
尽管在Android平台上,HttpClient自API级别23(Android 6.0)开始被视为废弃,并推荐使用OkHttp或者HttpURLConnection作为替代,但在许多旧项目或者特定需求场景下,HttpClient仍然被广泛使用。 HttpClient的主要...
在这个例子中,我们首先创建一个URL对象,然后通过`openConnection()`方法得到一个`HttpURLConnection`实例。设置请求方法为GET后,我们可以获取响应码,以确保请求成功。然后通过输入流读取服务器返回的数据,最后...
1. **创建HTTP请求**:在Android中,我们通常通过`URL`对象打开一个连接,然后使用`openConnection()`方法得到`HttpURLConnection`实例。设置请求方法(GET或POST),添加请求头,并启用输入流以接收响应。 2. **...
1. **构建HTTP请求**:使用像`HttpURLConnection`或者第三方库如`Apache HttpClient`或`OkHttp`,创建一个指向登录页面的POST请求。你需要设置请求头,比如`Content-Type`通常设为`application/x-...
这通常涉及到创建`HttpURLConnection`或使用第三方库如Apache HttpClient或OkHttp。在请求头中设置"Content-Type"为"application/x-www-form-urlencoded",并将用户名和密码作为键值对添加到请求体。 4. **处理...
在Java中,我们可以使用诸如`HttpURLConnection`、`OkHttp`或`Apache HttpClient`等库来处理HTTP请求,同时,可以利用`OAuthSignpost`、`Spring Security OAuth`或`OAuth2 Java Client`等库来简化OAuth认证流程。...