利用apache的虚拟客户端包获取某个地址的内容
1import java.io.UnsupportedEncodingException;
2import java.util.HashSet;
3import java.util.Iterator;
4import java.util.Set;
5import java.util.regex.Matcher;
6import java.util.regex.Pattern;
7
8import org.apache.commons.httpclient.HttpClient;
9import org.apache.commons.httpclient.NameValuePair;
10import org.apache.commons.httpclient.methods.PostMethod;
11
12public class catchMain {
13
14 /**
15 * @param args
16 */
17 public static void main(String[] args) {
18
19
20 String url = "http://search.foodqs.com/companysearch.asp";
21 String keyword="食";
22 String response=createhttpClient(url,keyword);
23 }
24
25public static String createhttpClient(String url,String param){
26 HttpClient client = new HttpClient();
27 String response=null;
28 String keyword=null;
29 PostMethod postMethod = new PostMethod(url);
30 try {
31 if(param!=null)
32 keyword = new String(param.getBytes("gb2312"),"ISO-8859-1");
33 } catch (UnsupportedEncodingException e1) {
34 // TODO Auto-generated catch block
35 e1.printStackTrace();
36 }
37
38 NameValuePair[] data = { new NameValuePair("keyword", keyword) };
39 // 将表单的值放入postMethod中
40 postMethod.setRequestBody(data);
41
42 try {
43 int statusCode = client.executeMethod(postMethod);
44 response = new String(postMethod.getResponseBodyAsString()
45 .getBytes("ISO-8859-1"), "GBK");
46 } catch (Exception e) {
47
48 e.printStackTrace();
49 }
50 return response;
51
52 }
53
2import java.util.HashSet;
3import java.util.Iterator;
4import java.util.Set;
5import java.util.regex.Matcher;
6import java.util.regex.Pattern;
7
8import org.apache.commons.httpclient.HttpClient;
9import org.apache.commons.httpclient.NameValuePair;
10import org.apache.commons.httpclient.methods.PostMethod;
11
12public class catchMain {
13
14 /**
15 * @param args
16 */
17 public static void main(String[] args) {
18
19
20 String url = "http://search.foodqs.com/companysearch.asp";
21 String keyword="食";
22 String response=createhttpClient(url,keyword);
23 }
24
25public static String createhttpClient(String url,String param){
26 HttpClient client = new HttpClient();
27 String response=null;
28 String keyword=null;
29 PostMethod postMethod = new PostMethod(url);
30 try {
31 if(param!=null)
32 keyword = new String(param.getBytes("gb2312"),"ISO-8859-1");
33 } catch (UnsupportedEncodingException e1) {
34 // TODO Auto-generated catch block
35 e1.printStackTrace();
36 }
37
38 NameValuePair[] data = { new NameValuePair("keyword", keyword) };
39 // 将表单的值放入postMethod中
40 postMethod.setRequestBody(data);
41
42 try {
43 int statusCode = client.executeMethod(postMethod);
44 response = new String(postMethod.getResponseBodyAsString()
45 .getBytes("ISO-8859-1"), "GBK");
46 } catch (Exception e) {
47
48 e.printStackTrace();
49 }
50 return response;
51
52 }
53
2.java自带的HttpURLConnection
1public static String getPageContent(String strUrl, String strPostRequest,
2 int maxLength) {
3 //读取结果网页
4 StringBuffer buffer = new StringBuffer();
5 System.setProperty("sun.net.client.defaultConnectTimeout", "5000");
6 System.setProperty("sun.net.client.defaultReadTimeout", "5000");
7 try {
8 URL newUrl = new URL(strUrl);
9 HttpURLConnection hConnect = (HttpURLConnection) newUrl
10 .openConnection();
11 //POST方式的额外数据
12 if (strPostRequest.length() > 0) {
13 hConnect.setDoOutput(true);
14 OutputStreamWriter out = new OutputStreamWriter(hConnect
15 .getOutputStream());
16 out.write(strPostRequest);
17 out.flush();
18 out.close();
19 }
20 //读取内容
21 BufferedReader rd = new BufferedReader(new InputStreamReader(
22 hConnect.getInputStream()));
23 int ch;
24 for (int length = 0; (ch = rd.read()) > -1
25 && (maxLength <= 0 || length < maxLength); length++)
26 buffer.append((char) ch);
27 rd.close();
28 hConnect.disconnect();
29 return buffer.toString().trim();
30 } catch (Exception e) {
31 // return "错误:读取网页失败!";
32 return null;
33 }
34 }
2 int maxLength) {
3 //读取结果网页
4 StringBuffer buffer = new StringBuffer();
5 System.setProperty("sun.net.client.defaultConnectTimeout", "5000");
6 System.setProperty("sun.net.client.defaultReadTimeout", "5000");
7 try {
8 URL newUrl = new URL(strUrl);
9 HttpURLConnection hConnect = (HttpURLConnection) newUrl
10 .openConnection();
11 //POST方式的额外数据
12 if (strPostRequest.length() > 0) {
13 hConnect.setDoOutput(true);
14 OutputStreamWriter out = new OutputStreamWriter(hConnect
15 .getOutputStream());
16 out.write(strPostRequest);
17 out.flush();
18 out.close();
19 }
20 //读取内容
21 BufferedReader rd = new BufferedReader(new InputStreamReader(
22 hConnect.getInputStream()));
23 int ch;
24 for (int length = 0; (ch = rd.read()) > -1
25 && (maxLength <= 0 || length < maxLength); length++)
26 buffer.append((char) ch);
27 rd.close();
28 hConnect.disconnect();
29 return buffer.toString().trim();
30 } catch (Exception e) {
31 // return "错误:读取网页失败!";
32 return null;
33 }
34 }
相关推荐
本文将详细讲解两种不同的方法来实现这一功能。 ### 方法一:使用`Win32_DiskDrive` WMI(Windows Management Instrumentation)查询 在Windows操作系统中,可以利用WMI接口来获取硬件信息,包括硬盘序列号。以下...
### Java获取客户端真实IP的两种方法详解 #### 一、问题背景 在Web开发中,经常需要获取客户端的真实IP地址来进行一系列的操作,比如统计访问来源、进行地理定位、安全防护等。然而,在实际应用场景中,客户端请求...
总结来说,Java读取Word文档页数可以通过两种主要途径:一是直接使用Jacob库操作Word文档;二是先将Word转换为PDF,再使用iTextPDF库读取PDF的页数。这两种方法各有优劣,应根据具体项目需求和环境选择合适的方法。
这里我们将详细探讨两种不同的方法来实现这个过程。 方法一:使用Apache Commons Compress库 Apache Commons Compress库是Java社区广泛使用的处理各种压缩格式的库,包括tar.gz。要使用这个库,首先需要将它的jar...
JAVA下使用两种方法(计算法、查表法)实现CRC(XMODEM)算法,以及验证代码
在上面的代码中,我们使用了两种方式来读取文件的内容:一次读一个字节和一次读多个字节。一次读一个字节可以使用 read() 方法,而一次读多个字节可以使用 read(byte[] b) 方法。 二、按字符读取文件内容 按字符...
java从一个包含中文字的字符串中抽取数字部分的两种方法,自己使用后,感觉挺符合需求了,分享出来。有需要的可以看看,看是否符合需求。
### Java读取DOC/DOCX/Word文档内容的数据方法 #### 概述 在实际开发过程中,经常需要处理各种格式的文档数据。其中,Word文档(.doc 和 .docx)是最常见的一种类型。Java提供了多种库来读取这些文档中的内容,...
除了DOM和DOM4J,还有其他两种常见的解析方式: 第三种是SAX(Simple API for XML),它是一种基于事件驱动的解析器。SAX不会将整个XML文档加载到内存中,而是逐行读取,遇到特定元素或属性时触发回调函数。这种...
Java获取磁盘空间的两种代码示例 Java获取磁盘空间的两种代码示例
读取CSV文件后,我们可以使用getHeaders()方法来获取CSV文件的标题行,并使用readRecord()方法来读取CSV文件的内容。 在写入CSV文件时,我们可以使用CsvWriter类来实现。CsvWriter类提供了多种构造函数,可以根据...
在Java编程中,读取视频时间通常涉及到处理多媒体文件,特别是获取视频的长度或播放时长。这是一项关键任务,特别是在开发与视频相关的应用程序时,比如视频播放器、视频处理工具或者媒体管理系统。以下是一些关于...
JAVA是一种广泛应用于软件开发的编程语言,随着网络技术的发展,JAVA也提供了许多支持远程文件读取的功能,本文将详细介绍JAVA实现远程文件读取的知识点。 1. Socket 编程 在JAVA中,Socket是最基本的网络编程接口...
这个"STL.zip_java读取stl_stl读取_java"的主题涉及到使用Java编程语言来处理ASCII格式的STL文件。在Java中读取STL文件可以帮助我们解析其内部的几何数据,例如三角面片的顶点坐标,从而进行3D模型的构建和分析。 ...
在这个例子中,`ReadFromFile`类中包含两种读取文件的方法:一种是以字节为单位,另一种是以字符为单位。 1. **以字节为单位读取文件**: - `readFileByBytes`方法展示了如何使用`FileInputStream`读取文件。首先...
excel读取主流是poi和jxl,两种方式功能都很全,但是缺乏比较零散。这里CommonUtil类中包含了poi、jxl读取excel的封装类,读取出来后变为list,需要的jar包一起带上了。还附带了excel流的方式下载,以及request内容...
FTP有两种传输模式:主动模式和被动模式。在大多数情况下,被动模式更适合防火墙后面的环境。 ```java ftp.enterLocalPassiveMode(); // 被动模式 ``` 5. **改变工作目录**: 可以通过`changeWorkingDirectory...
由于描述中没有明确指出是哪种类型的Word文件,我们将讨论两种情况。 1. **读取老版Word(.doc)页码**: 使用HWPF,我们可以创建`HWPFDocument`对象来读取文档。页码存储在页眉或页脚的段落属性中,所以我们需要...