使用java模拟登陆百度

本文详细介绍了如何使用Java进行网络编程,模拟登录百度的过程。通过设置请求头、发送POST请求,实现用户身份验证,并成功获取登录后的网页内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	public static void loginBaidu() {

		URL url = null;

		HttpURLConnection httpurlconnection = null;

		try {

			url = new URL("http://www.baidu.com/");			

			httpurlconnection = (HttpURLConnection) url.openConnection();

			httpurlconnection.setRequestProperty("User-Agent", "Internet Explorer");

			httpurlconnection.setRequestProperty("Host", "www.baidu.com");

			httpurlconnection.connect();

			String cookie0 = httpurlconnection.getHeaderField("Set-Cookie");

			httpurlconnection.disconnect();

			url = new URL("http://passport.baidu.com/?login");

			String strPost = "username=xxxxxx&password=xxxxxx&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();

		}

	}
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值