手机
当前位置:查字典教程网 >编程开发 >Java >java模拟post请求登录猫扑示例分享
java模拟post请求登录猫扑示例分享
摘要:复制代码代码如下:importjava.io.BufferedReader;importjava.io.File;importjava.io...

复制代码 代码如下:

import java.io.BufferedReader;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.Scanner;

import java.util.StringTokenizer;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.select.Elements;

public class TestPost {

public static void main(String args[]) throws IOException{

Scanner scanner = new Scanner(System.in);

System.out.println("请输入用户名:");

String user_name = scanner.next();

System.out.println("请输入密码:");

String password = scanner.next();

testPost(user_name , password,"d:/fileDown2.txt");

testJsoup();

}

public static void testPost(String user_name , String password,String outPath) throws IOException{

String login ="";

URL url = new URL("http://passport.mop.com");

HttpURLConnection connection = null;

connection = (HttpURLConnection) url.openConnection();//建立链接

connection.setInstanceFollowRedirects(false);

connection.setRequestProperty("Connection","keep-alive");

connection.setRequestProperty("User-Agent",

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36");

connection.addRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");

connection.setDoInput(true);

connection.setDoOutput(true);

//connection.disconnect();

String str = connection.getHeaderField("Location");//获得重定向的url地址

URL newURL = new URL(str);

//String cookies = getCookies(connection);

HttpURLConnection conn = (HttpURLConnection) newURL.openConnection();

conn.setRequestProperty("Referer", str);//浏览器向 WEB 服务器表明自己是从哪个 网页/URL 获得/点击 当前请求中的网址/URL

//conn.setRequestProperty("Cookie", cookies);//发送设置cookie:

conn.setRequestProperty("Connection","keep-alive");

conn.setRequestProperty("User-Agent",

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36");

conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

conn.setDoInput(true);

conn.setDoOutput(true);

OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream(),"utf-8");

login =login+"user_name="+user_name+"&"+"password="+password;

out.write(login);

out.flush();

out.close();

InputStream inputStream = conn.getInputStream();

BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));

reader.close();

//链接到personal页面

String headerName = null;

StringBuilder myCookies = new StringBuilder();

//myCookies.append(cookies + ";");

for(int i =1;(headerName= conn.getHeaderFieldKey(i))!=null;i++){

if(headerName.equals("Set-Cookie")){

String cookie = conn.getHeaderField(i);

cookie = cookie.substring(0, cookie.indexOf(";"));

String cookieName = cookie.substring(0, cookie.indexOf("="));

String cookieValue = cookie.substring(cookie.indexOf("=") + 1, cookie.length());

myCookies.append(cookieName + "=");

myCookies.append(cookieValue + ";");

}

}

URL purl = new URL("http://passport.mop.com/personal");

HttpURLConnection pconn = (HttpURLConnection) purl.openConnection();

pconn.setRequestProperty("Referer", str);

pconn.setRequestProperty("Cookie", myCookies.toString());

pconn.connect();

InputStream inputStream1 = pconn.getInputStream();

//BufferedReader reader1 = new BufferedReader(new InputStreamReader(inputStream1,"utf-8"));

//String line1 = reader1.readLine();

//while(line1 != null){

//System.out.println(line1);

//line1 = reader1.readLine();

//}

//reader1.close();

int chByte = 0;

FileOutputStream fileOut = new FileOutputStream(new File(outPath));

chByte = inputStream1.read();

while(chByte != -1){

fileOut.write(chByte);

chByte = inputStream1.read();

}

}

private static String getCookies(HttpURLConnection conn) {

// TODO Auto-generated method stub

// StringBuffer cookies = new StringBuffer();

StringBuilder cookies = new StringBuilder();

String headName;

for (int i = 1; (headName = conn.getHeaderField(i)) != null; i++) {

StringTokenizer st = new StringTokenizer(headName, "; ");

while (st.hasMoreTokens()) {

cookies.append(st.nextToken() + "; ");

}

}

return cookies.toString();

}

private static void testJsoup() throws IOException{

//解析html文档

File input = new File("D:/fileDown2.txt");

Document doc = Jsoup.parse(input, "UTF-8");

// for(Element ele : doc.getElementsByClass("zhnc").select("ul")){

// if(!ele.select("li").toString().equals("")){

// String text = ele.select("li").text();

// System.out.println("user_name is:"+text);

// }

// }

Elements ele = doc.getElementsByClass("zhnc").select("ul");

if(!ele.select("li").toString().equals("")){

String text = ele.select("li").text();

System.out.println("user_name is:"+text);

}else{

System.out.println("登录失败");

}

}

}

【java模拟post请求登录猫扑示例分享】相关文章:

java poi读取excel操作示例(2个代码)

java网络编程中向指定URL发送GET POST请求示例

简单的java读取文件示例分享

java使用rmi传输大文件示例分享

java解析xml之jdom解析xml示例分享

java中servlet实现登录验证的方法

java日期工具类实例分享

java线程并发semaphore类示例

java使用数组和链表实现队列示例

java配置dbcp连接池(数据库连接池)示例分享

精品推荐
分类导航