`
futrueboy
  • 浏览: 83611 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java HttpURLConnection 登录网站 完整代码

阅读更多
import java.io.*;
import java.util.*;
import java.net.*;

public class WebTest {

	public static void main(String[] args) {

		System.out.println("beging...");
		DownLoadPages("http://login.xiaonei.com/Login.do", "d:/fileDown.txt");
		// visit("http://www.xiaonei.com");
		System.out.println("end.");
	}

	public static void DownLoadPages(String urlStr, String outPath) {
		int chByte = 0;

		URL url = null;

		HttpURLConnection httpConn = null;

		InputStream in = null;

		FileOutputStream out = null;

		try {
			String post = "email=" + URLEncoder.encode("e-mail", "UTF-8")
					+ "&password=" + "password";
			url = new URL(urlStr);

			httpConn = (HttpURLConnection) url.openConnection();

			//setInstanceFollowRedirects can then be used to set if 
			//redirects should be followed or not and this should be used before the
			//connection is established (via getInputStream, getResponseCode, and other
			//methods that result in the connection being established).

			httpConn.setFollowRedirects(false);

			//inorder to disable the redirects
			httpConn.setInstanceFollowRedirects(false);

			httpConn.setDoOutput(true);
			httpConn.setDoInput(true);
			httpConn.setRequestProperty("User-Agent",
					"Mozilla/5.0 (compatible; MSIE 6.0; Windows NT)");
			httpConn.setRequestProperty("Content-Type",
					"application/x-www-form-urlencoded");

			//ok now, we can post it
			PrintStream send = new PrintStream(httpConn.getOutputStream());
			send.print(post);
			send.close();
			URL newURL = new URL(httpConn.getHeaderField("Location"));
			System.out.println("the URL has move to "
					+ httpConn.getHeaderField("Location"));
			httpConn.disconnect();

			//			 OK, now we are ready to get the cookies out of the URLConnection	
			String cookies = getCookies(httpConn);
			System.out.println(cookies);
			httpConn = (HttpURLConnection) newURL.openConnection();
			httpConn.setRequestProperty("User-Agent",
					"Mozilla/5.0 (compatible; MSIE 6.0; Windows NT)");
			httpConn.setRequestProperty("Content-Type",
					"application/x-www-form-urlencoded");
			httpConn.setRequestProperty("Cookie", cookies);

			httpConn.setDoInput(true);
			in = httpConn.getInputStream();
			out = new FileOutputStream(new File(outPath));

			chByte = in.read();
			while (chByte != -1) {
				out.write(chByte);
				//System.out.println(chByte);
				chByte = in.read();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static String getCookies(HttpURLConnection conn) {
		StringBuffer cookies = new StringBuffer();
		String headName;
		for (int i = 7; (headName = conn.getHeaderField(i)) != null; i++) {
			StringTokenizer st = new StringTokenizer(headName, "; ");
			while (st.hasMoreTokens()) {
				cookies.append(st.nextToken() + "; ");
			}
		}
		return cookies.toString();
	}
}
分享到:
评论

相关推荐

    TestWebPage:Java代码基于Java HttpURLConnection类测试https代理设置

    用于基于Java HttpURLConnection类测试https代理设置的Java代码。 该代码实际上可以连接到任何URL,但仅响应https.proxyUser和https.ProxyPassword系统属性。 用法: $ java <java> -jar testwebpage.jar sherif@...

    JAVA实现HTTP请求

    这个是我自己集成框架的时候写的一个HTTP请求的辅助类,主要是通过HttpURLConnection 来实现JAVA的HTTP请求,有的人会问、为什么有些网站发请求没问题,有些网站发请求却返回数据,在给网站发送请求的时候,请看清楚...

    HttpUrlConnection:说明HttpUrlConnection

    HttpUrlConnection 说明HttpUrlConnection

    对Java的HttpURLConnection的封装类

    其实Java内置的HttpURLConnection很好的。HttpComponents不但复杂,而且有小问题。Java API没有内置HttpComponents是应该是有考虑的,HttpURLConnection已经可以了。  * 基于HttpURLConnection  * version 1.0.0...

    HttpURLConnection获取webService上的值

    JAVA代码里,HttpURLConnection获取webservice的值,包含W3C解析XML节点方法

    Java提交后获取网页源代码

    利用java进行网页的源代码获取 可以用在数据采集使用 可用于安卓平台

    Java 获取URL的内容

    Java获取URL内容的,我这里只给出GET方式的,POST和其它方式的都是比较类似的。其技术要点就一下三点。 第一:创建HttpURLConnection 第二:打开URL,创建一个InputStream 第三:... java.net.HttpURLConnection l_con

    Java Https请求,跳过证书,直接访问

    Java Https请求,跳过证书,直接访问 相关jar包全有 直接下载就能调试

    JAVA发送POST请求,如何使用JAVA发送POST请求

    本资源库提供了一份完整的JAVA客户端发送POST请求的示例代码,可以帮助您快速了解如何使用JAVA客户端发送POST请求,同时也适用于其他HTTP请求类型。 我们的示例代码包括以下主要部分: 创建HTTP连接:使用Java.net...

    HttpURLConnection

    Java API自动化测试-- 该存储库包含来自各种书籍和项目的示例代码。 随着时间的流逝,越来越多的代码将在此处上传。 除非另有说明,否则该存储库中的所有代码均应视为公共领域。 ###贡献如果您想为该存储库做出任何...

    java_android_HttpURLConnection网络l连接工具类的标准代码

    一些工具类代码块的标准代码: 异步的Get请求 异步的Post请求 Get请求,获得返回数据 向指定 URL 发送POST方法的请求 使用finally块来关闭输出流和输入流

    java 网络及通信

    java网络及通信、httpClient、socket通信、HttpURLConnection、java 中常用的几种网络通信方式。在此总结、希望对需要的同仁有所帮助。

    Java毕业设计-Java多线程与线程安全实践-基于Http协议的断点续传.rar

    4. 基于Http协议:项目使用了Java的HttpURLConnection类来实现基于Http协议的文件下载。这使得项目具有较好的通用性,可以应用于各种Http服务器和网络环境。 5. 可扩展性:项目的代码结构清晰,模块化程度高,可以...

    Android 中HttpURLConnection与HttpClient使用的简单实例

    代码如下:public class HttpHelper { //1:标准的Java接口 public static String getStringFromNet1(String param){ String result=””; try{ URL url=new URL(param); HttpURLConnection conn=...

    Java网络编程(第三版)中文版.part09.rar

    本书有很多示例,包含了几千行可以实际工作的代码(所有代码都可以在线获得),实现了功能完整的网络客户端和服务器。无论是希望编写特殊用途的web服务器、安全的在线订单接收程序、简单的组播代理还是电子邮件...

    gson.jar&Android;服务请求代码

    Android Java 开发,转换Json数据,绝对可用。我写了代码范例,同时附加了通过HttpURLConnection发送Json数据的服务请求源码。

    SSO单点登录快速入门及实战项目(2.80G)

    08.单点登录代码实现(一).avi 09.单点登录代码实现(二).avi 10.单点登录代码实现(三).avi 11.单点登录的流程梳理.avi 12.单点注销的流程分析.avi 13.单点登出代码实现.avi 14.单点注销的流程梳理.avi 15.CAS-配置...

    java打包源码-Guess_The_Logo_App:它是一个使用java.net包的基本工具HttpURLConnection通过webs

    java打包源码Guess_The_Logo_App 它是一个使用java.net包的基本工具HttpURLConnection通过webscrapping构建的Android应用。...此应用程序会提取网站的()源代码,并将所需的信息转换为“猜测徽标的名称”测验。

    softlayer-java:适用于Java的SoftLayer API客户端

    默认情况下,HTTP客户端是Java HttpUrlConnection ,JSON编组由完成。 这两个部分都可以交换为其他实现方式(请参见下文)。 examples/项目具有API的示例用法。 可以在Maven的examples/文件夹中通过命令执行该命令...

    JAVA爬虫Jsoup -Mybatis-Plusaricle-crawling-master.zip

    它提供了很多常用的功能,例如通用 Mapper、分页插件、代码生成器等。同时,它也遵循原生 Mybatis 的 SQL 标准,方便我们快速的进行开发。 Jsoup 是一个 Java 的 HTML 解析器,主要用于从网页中提取数据。通过 ...

Global site tag (gtag.js) - Google Analytics