设为首页收藏本站

Scripts 学盟

 找回密码
 加入学盟

QQ登录

只需一步,快速开始

查看: 3870|回复: 0
打印 上一主题 下一主题

关于 Java 的 HTTP 抓取 [GET 方式请求] [复制链接]

管理员

超级大菜鸟

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
Alvin 实名认证  发表于 2011-4-29 22:12:14 |只看该作者 |倒序浏览
下面是一个简单例子代码,可供参考.
  1. /**
  2. * (#)HttpGet.java    创建时间:Apr 29, 2011 9:36:43 PM<br />
  3. */
  4. package org.iscripts.common.net;

  5. import java.io.BufferedReader;
  6. import java.io.IOException;
  7. import java.io.InputStream;
  8. import java.io.InputStreamReader;
  9. import java.net.URL;
  10. import java.net.URLConnection;
  11. import java.util.regex.Matcher;
  12. import java.util.regex.Pattern;

  13. /**
  14. * @author 林俊海(ialvin.cn) 广东·普宁·里湖
  15. */
  16. public class HttpGet {

  17.   public static void main(String[] args) throws IOException {
  18.     System.out.println(HttpGet.get("http://www.iscripts.org/", "utf-8"));
  19.   }
  20.   
  21.   public static String get(String strURL) throws IOException {
  22.     URLConnection conn = HttpGet.openURL(strURL);
  23.     return HttpGet.read(conn.getInputStream(), HttpGet.getContentEncoding(conn));
  24.   }
  25.   
  26.   public static String get(String strURL, String encoding) throws IOException {
  27.     return HttpGet.read(HttpGet.openURL(strURL).getInputStream(), encoding);
  28.   }
  29.   
  30.   private static URLConnection openURL(String strURL) throws IOException {
  31.     URLConnection conn = new URL(strURL).openConnection();
  32.     conn.connect();
  33.     return conn;
  34.   }
  35.   
  36.   private static String read(InputStream in, String encoding) throws IOException {
  37.     if (encoding == null) encoding = "utf-8";
  38.     BufferedReader reader = new BufferedReader(new InputStreamReader(in, encoding));
  39.     char[] str = new char[4096];
  40.     StringBuilder builder = new StringBuilder();
  41.     for (int len; (len = reader.read(str)) > -1;)
  42.       builder.append(str, 0, len);
  43.     return builder.toString();
  44.   }
  45.   
  46.   private static String getContentEncoding(URLConnection conn) {
  47.     String contentType = conn.getContentType();
  48.     if (contentType == null) return null;
  49.     final Pattern ptnCharset = Pattern.compile("(?i)\\bcharset=([^\\s;]+)");
  50.     Matcher m = ptnCharset.matcher(contentType);
  51.     if (m.find())
  52.       return m.group(1);
  53.     return null;
  54.   }
  55. }
复制代码
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享分享0 收藏收藏0
您需要登录后才可以回帖 登录 | 加入学盟

手机版|Scripts 学盟   |

GMT+8, 2024-4-26 01:21 , Processed in 1.096106 second(s), 13 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部