- 浏览: 167938 次
- 来自: ...
文章分类
最新评论
-
hellostory:
不知所云………………
如何使用反射访问类的private域和方法 -
xusong_zidingyi:
如果在linux下面的话就没有办法运行了,因为linux没有办 ...
使用tesseract破解checkCode -
javajava22:
Errors accessing files. There m ...
使用tesseract破解checkCode -
suncathay:
qljobs 写道cmd.add("E:/Works ...
使用tesseract破解checkCode -
zuoxu128:
TIFFImageWriteParam ,这个类是哪个包的啊
使用tesseract破解checkCode
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.HashMap; import java.util.List; import java.util.Map; public class HttpClient { public static final String METHOD_GET = "GET"; public static final String METHOD_POST = "POST"; private String url; private String cookie; HttpURLConnection httpConn = null; private boolean connected = false; private Map<String, String> requestHeader = new HashMap<String, String>(); private static final String USER_AGENT = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)"; public HttpClient(String url) { this(url, null); } public HttpClient(String url, String cookie) { this.url = url; this.cookie = cookie; } public void addRequestHeader(String key, String value) { this.requestHeader.put(key, value); } public void connect(String method) throws IOException { try { URLConnection con = new URL(url).openConnection(); if (con instanceof HttpURLConnection) { httpConn = (HttpURLConnection) con; } if ("POST".equals(method)) { httpConn.setDoInput(true); httpConn.setDoOutput(true); httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); } httpConn.setInstanceFollowRedirects(false); httpConn.setRequestMethod(method); if (cookie != null) { httpConn.addRequestProperty("Cookie", cookie); } httpConn.setRequestProperty("User-Agent", USER_AGENT); httpConn.setUseCaches(false); if (!this.requestHeader.isEmpty()) { for (String key : this.requestHeader.keySet()) { httpConn.setRequestProperty(key, this.requestHeader .get(key)); } } httpConn.connect(); connected = true; } catch (MalformedURLException e) { throw new IOException(e); } } public boolean followRedirects() throws IOException { int resultCode = httpConn.getResponseCode(); return (resultCode >= 300 && resultCode < 400); } public String getLocation() { String location = httpConn.getHeaderField("Location"); if (location == null) { location = httpConn.getHeaderField("location"); } return location; } public InputStream getInputStream() throws IOException { return httpConn.getInputStream(); } public String getBodyString() throws IOException { return getBodyString(null); } public String getBodyString(String charset) throws IOException { BufferedReader reader; if (charset == null) { reader = new BufferedReader(new InputStreamReader(getInputStream())); } else { reader = new BufferedReader(new InputStreamReader(getInputStream(), charset)); } StringBuffer sb = new StringBuffer(); String inputLine = null; while ((inputLine = reader.readLine()) != null) { sb.append(inputLine); } return sb.toString(); } public void post(List<String> dataList) throws IOException { PrintWriter out = new PrintWriter(httpConn.getOutputStream()); StringBuffer postData = new StringBuffer(); for (String data : dataList) { postData.append(data).append("&"); } out.write(postData.toString()); out.flush(); out.close(); } public String getCookie() { String key = null; String cookie = ""; for (int i = 1; (key = httpConn.getHeaderFieldKey(i)) != null; i++) { if ("set-cookie".equalsIgnoreCase(key)) { String cookieVal = httpConn.getHeaderField(i); cookieVal = cookieVal.substring(0, cookieVal.indexOf(";")); cookie = cookie + cookieVal + ";"; } } return cookie; } public void disconnect() { if (connected) { httpConn.disconnect(); connected = false; } } public static void main(String[] args) throws IOException { String url="http://renmai.china.alibaba.com/personal/index.html"; String cookie="******"; HttpClient hc = new HttpClient(url,cookie); hc.connect(METHOD_GET); System.out.println(hc.getBodyString()); System.out.println(hc.getCookie()); hc.disconnect(); } }
在这个页面不需要登录的时候,这个方法是非常简单的,cookie可以不设置,但是如果需要登录的话,就比较麻烦,这时可以采用fiddler等web代理工具,在打开此页面时将header中的值抓取出来,拷贝到程序中,则问题即解决,如附件图所示:
发表评论
-
一些随想
2012-06-01 22:05 0需求 idea 方案 执 ... -
Redis的安装与使用
2011-10-24 20:04 1292今天看了下redis相关的东东,做个备忘。 Re ... -
Redis的安装与使用
2011-10-24 20:00 0Redis 服务端: http://cocos.iteye. ... -
GenericDAO
2011-07-31 14:49 0GenericDAO -
loadfromproperties
2011-07-31 14:48 0loadfromproperties -
resultcode
2011-07-31 14:47 0resultcode -
berkeleydb的使用
2011-10-24 20:05 1883在napoli的代码中发现这个berkeleydb,版本为3. ... -
几种简单的Load Balance方法
2011-07-31 13:44 0以下代码出自napoli (1)定义Selec ... -
参数断言工具
2011-07-31 12:58 952见代码: public final class Argume ... -
如何检测线上代码的运行情况---BTrace使用分享
2011-04-10 17:36 2087(1)你是否有时发现线上的代码运行效率不高,但却无法定位到底具 ... -
napoli和JMS,mq的一些知识
2010-11-26 21:01 01 jms和mq (1)jms activeMQ 应用 h ... -
Taglib基础知识
2010-11-26 12:41 0浅论taglib设计 : http://wenku.bai ... -
java编码问题的一些文章
2010-11-11 17:30 0http://www.iteye.com/topic/8047 ... -
URL在转码的过程中数据丢失
2010-10-25 14:52 0示例代码 import java.io.Unsuppo ... -
遍历大容量map的正确方法
2010-10-08 13:20 11192首先,遍历map有以下方法: import java.uti ... -
B2B-Code Review规范
2010-08-31 10:15 01.目标 凡事知其然还要知其所以然,我们首先需要知道什么 ... -
多线程书写及code review规范
2010-08-31 10:09 14501. 不允许将Calendar用于类的静态成员 ... -
域名白名单检查
2010-08-24 21:05 0首先准备一份白名单名为safe-domain.xml ,如下: ... -
如何使用反射访问类的private域和方法
2010-08-17 21:44 5132如何使用反射访问类的private域和方法?非常简单,由 ... -
FindBugs插件的安装与使用
2010-04-21 10:54 19141 什么是FindBugs FindBugs 是一个静态分析 ...
相关推荐
2. **解析HTML**:得到网页内容后,可以使用HTML解析库,如Jsoup,来解析HTML文档结构。Jsoup能提供方便的API来提取和操作DOM元素。 3. **处理嵌入资源**:MHT文件需要包含所有嵌入的图片和其他资源。因此,对于...
在Java中,我们可以使用`java.net.URL`和`java.net.URLConnection`类,或者更现代的`HttpURLConnection`,或者第三方库如Apache HttpClient或OkHttp。以下是一个简单的示例,使用`HttpURLConnection`: ```java URL...
- 通过`getInputStream()`获得服务器的响应流,然后可以使用`BufferedReader`读取内容。 7. **处理HTML内容**: - 一旦获得HTML内容,可以使用`Jsoup`库来解析和提取所需信息。`Jsoup`是一个强大的库,它使得解析...
使用URL类的实例可以打开一个网络资源的输入流,获取网页内容是网络编程中最基础的操作之一。通过建立URL对象,并调用openStream方法,可以直接获得资源的InputStream。为了提高效率和兼容性,通常会将InputStream...
Java HTTP 客户端是指使用 Java 语言实现的 HTTP 客户端程序,它能够根据给定的 URL,获得指定 URL 所指向的内容,并对获得的内容进行进一步的解析和处理。下面是关于 Java HTTP 客户端的详细知识点: 一、HTTP ...
通过URL对象的`openConnection()`方法获得URLConnection实例。 ##### 2. 获取输入流与输出流 - **InputStream**: 输入流,用于读取数据。 - **ByteArrayOutputStream**: 字节数组输出流,可以将其视为内存中的文件...
- 要从网页中提取XML源码,可以使用`java.net.URL`和`java.net.URLConnection`类连接到网页。 - 通过`BufferedReader`读取网页内容,然后寻找XML标签,提取出XML字符串。 - 接下来可以使用DOM、SAX或JAXB来解析这...
2. 使用URL对象打开一个连接,得到一个URLConnection对象。 3. 通过URLConnection对象向服务器发送请求,并获取服务器响应的输入流。 4. 从输入流中读取数据,通常需要将输入流转换为字符串或者直接写入到文件中。 5...
爬虫可以从一个或多个初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。 爬虫技术可以分为两种:通用爬虫和专用爬虫。通用爬虫...
13.2.2 使用URLConnection 提交请求 490 13.3 使用HTTP访问网络 496 13.3.1 使用HttpURLConnection 496 13.3.2 使用Apache HttpClient 501 13.4 使用WebView视图 显示网页 505 13.4.1 使用WebView...
3. **转换为HttpURLConnection**:由于返回的是`URLConnection`类型,因此需要将其转换为`HttpURLConnection`以便使用其提供的高级功能。 4. **获取输入流并读取数据**:使用`getInputStream()`方法获取输入流,然后...
Java提供了丰富的API,如Socket和URLConnection,使得开发者可以轻松地处理HTTP请求,加载和解析网页内容。这对于构建浏览器的核心功能至关重要,比如加载网页、发送HTTP请求和接收响应。 在用户需求分析方面,考虑...
视频会介绍如何使用这些类从互联网上获取资源,包括文件下载、网页抓取等。同时,会讲解HTTPURLConnection的设置,如设置超时、处理重定向、以及POST请求的发送。 此外,NIO(非阻塞I/O)是Java 1.4引入的新特性,...
12.3.3使用反射在运行时获得注释380 12.3.4AnnotatedElement接口383 12.3.5使用默认值383 12.3.6标记注释384 12.3.7单成员注释385 12.3.8内置注释386 12.3.9使用注释的一些限制390 12.4本章小结390 第13章...
例如,以下代码展示了如何使用`URL`类读取一个网页并将其内容打印出来: ```java try { URL url = new URL("http://www.example.com"); HttpURLConnection connection = (HttpURLConnection) url.open...
要获取远程文件的MIME类型,可以使用`URLConnection`类。例如,通过以下代码可以获取文件`aaa.txt`的类型: ```java URL u = new URL("file:///aaa.txt"); URLConnection uc = u.openConnection(); String s = uc....
渲染引擎负责解析HTML、CSS和JavaScript,呈现网页内容;数据存储模块则用于保存用户的书签、历史记录等信息;设置管理模块则为用户提供自定义浏览器行为的选项。 2. **渲染引擎:Webkit与JavaScriptCore** Zirco...