如何用java实现登陆网站--不需打开浏览器

public static void loginBaidu() {
  URL url = null;
  HttpURLConnection httpurlconnect()ion = null;
  try {
   url = new URL("http://www.baidu.com/");
   httpurlconnect()ion = (HttpURLConnection) url.openConnection();
   httpurlconnect()ion.setRequestProperty("User-Agent",
     "Internet Explorer");
   httpurlconnection.setRequestProperty("Host", "www.baidu.com");
   httpurlconnection.connect();
   
   String cookie0 = httpurlconnection.getHeaderField("Set-Cookie");
   
   System.out.println(cookie0);//打印出cookie
   httpurlconnection.disconnect();
   // String cookie0 =
   // "BAIDUID=8AF5EA24DBF1275CE15C02B5FF65A265:FG=1;BDSTAT=61a1d3a7118ce8a7ce1b9d16fdfaaf51f3deb48f8e5494eef01f3a292cf5b899;
   // BDUSE=deleted";
   url = new URL("http://passport.baidu.com/?login");
   String strPost = "username=xxxxxx&password=yyyyyyy&mem_pass=on";
   httpurlconnection = (HttpURLConnection) url.openConnection();
   httpurlconnection.setFollowRedirects(true);
   httpurlconnection.setInstanceFollowRedirects(true);
   httpurlconnection.setDoOutput(true); // 需要向服务器写数据
   httpurlconnection.setDoInput(true); // 
   httpurlconnection.setUseCaches(false); // 获得服务器最新的信息
   httpurlconnection.setAllowUserInteraction(false);
   httpurlconnection.setRequestMethod("POST");
   httpurlconnection
     .addRequestProperty(
       "Accept",
       "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-silverlight, */*");
   httpurlconnection
     .setRequestProperty("Referer",
       "http://passport.baidu.com/?login&tpl=mn&u=http%3A//www.baidu.com/");
   httpurlconnection.setRequestProperty("Accept-Language", "zh-cn");
   httpurlconnection.setRequestProperty("Content-Type",
     "application/x-www-form-urlencoded");
   httpurlconnection.setRequestProperty("Accept-Encoding",
     "gzip, deflate");
   httpurlconnection
     .setRequestProperty(
       "User-Agent",
       "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Foxy/1; .NET CLR 2.0.50727;MEGAUPLOAD 1.0)");
   httpurlconnection.setRequestProperty("Host", "passport.baidu.com");
   httpurlconnection.setRequestProperty("Content-Length", strPost
     .length()
     + "");
   httpurlconnection.setRequestProperty("Connection", "Keep-Alive");
   httpurlconnection.setRequestProperty("Cache-Control", "no-cache");
   httpurlconnection.setRequestProperty("Cookie", cookie0);
   httpurlconnection.getOutputStream().write(strPost.getBytes()());
   httpurlconnection.getOutputStream().flush();
   httpurlconnection.getOutputStream().close();
   httpurlconnection.connect();
   int code = httpurlconnection.getResponseCode();
   System.out.println("code   " + code);
   String cookie1 = httpurlconnection.getHeaderField("Set-Cookie");
   System.out.print(cookie0 + "; " + cookie1);
   httpurlconnection.disconnect();
   url = new URL("http://www.baidu.com/");
   httpurlconnection = (HttpURLConnection) url.openConnection();
   httpurlconnection.setRequestProperty("User-Agent",
     "Internet Explorer");
   httpurlconnection.setRequestProperty("Host", "www.baidu.com");
   httpurlconnection.setRequestProperty("Cookie", cookie0 + "; "
     + cookie1);
   httpurlconnection.connect();
   InputStream urlStream = httpurlconnection.getInputStream();
   BufferedInputStream buff = new BufferedInputStream(urlStream);
   Reader r = new InputStreamReader(buff, "gbk");
   BufferedReader br = new BufferedReader(r);
   StringBuffer strHtml = new StringBuffer("");
   String strLine = null;
   while ((strLine = br.readLine()) != null) {
    strHtml.append(strLine + "\r\n");
   }
   System.out.print(strHtml.toString());
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   if (httpurlconnection != null)
    httpurlconnection.disconnect();
  }
 }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值