当前位置:首页 > Java技术

java 取WEB资源的内容

canca18年前 (2008-05-13)Java技术496

作者:独钓寒江月

有时候需要取得网页内容,再分析处理。
会话管理、post方法等见代码注释。

<code>

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class GetHttp
{
    public String getValue(String url)
    {
        long stime = System.currentTimeMillis();
        String r = null;
      try{ 
         
          HttpURLConnection huc;
         
        InputStream  in;
        URL url1 = new URL(url);
        huc = (HttpURLConnection) url1.openConnection();

//      设置允许output
        if (!huc.getDoOutput())
        {
            huc.setDoOutput(true);
        }
//      设置为post/get方式
        huc.setRequestMethod("GET");
        /*
//      设置为cookie
        if(sessionId != null)
        {
            huc.setRequestProperty("Cookie", sessionId);
        }
        */
        //模拟浏览器
        huc.setRequestProperty("User-Agent","Mozilla/4.7 [en] (Win98; I)");
        //设置超时 3秒
        huc.setConnectTimeout(3000);
       
        /*
        ///////////////// 如果使用post方式,参数的传递
//        StringBuffer sb = new StringBuffer();
        sb.append("op=4117");
        sb.append("&i=17");
        sb.append("&o=0");
        sb.append("&l=110");
        sb.append("&t=WANGLUOGUIJI");
        sb.append("&u=4");
        sb.append("&d=1");
//        sb.append(pars);
//        sb.append("&spid=" + Const.FEE_SPID);
//        sb.append("&spv=" + Const.FEE_SP_VALIDATE);
       
//      post信息
//       OutputStream os = huc.getOutputStream();
//       os.write(sb.toString().getBytes("utf8"));
//       os.close();
       //huc.setDoOutput(false);
        */

       /////////////////////开始读 服务器的返回
       
       /*
//cookie       
        String cookieVal = huc.getHeaderField("Set-Cookie");
        if(cookieVal != null)
        {
            sessionId = cookieVal.substring(0, cookieVal.indexOf(";"));
        }
        */
      
        in = huc.getInputStream();
//        BufferedReader breader = new BufferedReader(new InputStreamReader(in , "utf8"));
        BufferedReader breader = new BufferedReader(new InputStreamReader(in , "gb2312"));
        String str=breader.readLine();
        while(str != null)
        {
          if(r != null)
              r += str;
          else
              r = str;
          str = breader.readLine();
        }
       
        //断开连接
        huc.disconnect();
       
        long etime = System.currentTimeMillis();
        System.out.println(".########################### web connect time : " + (etime-stime));
        return r;
      }
      catch(Exception e)
      {
          e.printStackTrace();
          return "";
      }
    }

    public static void main(String[] args ) throws Exception
    {
        String url = "http://www.baidu.com/";
        GetHttp gh = new GetHttp();
        String http = gh.getValue(url);
        gh = null;
       
        System.out.println(http);
    }

}


</code>

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/448.html

标签: Java技术
分享给朋友:

“java 取WEB资源的内容” 的相关文章

对象序列化与反序列化

    序列化,并不是JAVA独有的。因此,在这里我用比较通俗的话说了。序列化就是把一个对象转换成有规则的二进制流。而反序列化就是把有规则的二进制数据重整成一个对象。其好处不难看见:1.可以把一个对象...…

Socket与ServerSocket的问题

//服务器端:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.ServerSock…

Java语言的反射机制

    由于项目的需要,在项目中要实现即插即用的方式,也就是说可以动态地加载包,不用设置CLASSPATH路径。当项目发布时,不可能要用户来设置环境变量吧!因此,就要用到JAVA的反射机制了。昨天,我是在研究JAVA的...…

JSP与Servlet的对应关系

以前在QQzone写下的文章现在贴到这里来了... 最近比较忙啊!现在抽身写一篇文章。是关于JSP与Servlet的对应关系的。希望对大家有所帮助。其实我也是刚刚学的......-------Servlet--------------JSP----------1.ServletContext&nbs…

JAVA获得一个文件夹大小

在JAVA里没有现成的方法获取一个文件夹的大小,那么我们可以用递归的方法,获取文件夹的大小。    import  java.util.*;  import  java.io.*;  class  GetFileSi…

IM技术(1)

    做项目了,NetCL今天开工了,在这些日子里,我会将自己研究的内容写下来。做个记录,以下是我在网上搜到的。关于管理用户状态的解决方案,当然,我都有一个方案。不过对客户端的任务有点重吧,我方法是客...…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。