当前位置:  编程技术>java/j2ee

java模拟post请求登录猫扑示例分享

    来源: 互联网  发布时间:2014-11-02

    本文导语:  代码如下: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;im...

代码如下:

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(/tech-java/str/index.html); 
//  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("登录失败");
     }
 }
}


    
 
 

您可能感兴趣的文章:

  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程
  • java Servlet实现Session创建存取以及url重写代码示例
  • java 四舍五入使java保留2位小数示例讲解
  • java进行error捕获和处理示例(java异常捕获)
  • java去除集合中重复元素示例分享 java去除重复
  • java读取csv文件示例分享(java解析csv文件)
  • java求三个数的最大值的示例分享
  • java生成字母数字组合的随机数示例 java生成随机数
  • java实现网页解析示例
  • java协变返回类型使用示例
  • 使用java执行定时任务示例
  • Web服务器/前端 iis7站长之家
  • java向文件末尾添加内容示例分享
  • java正则表达式获取url的host示例
  • java使用正则表达校验手机号码示例(手机号码正则)
  • java实现jframe透明窗体示例
  • java的split方法使用示例
  • java抓取网页数据示例
  • Oracle 使用Java Source 简单示例
  • java自定义日期转化类示例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java发送get请求和post请求示例
  • 怎样在一个JAVA应用程序里,向一个SERVLET发出HTTP请求(带参数)???
  • 请求Java的加密!
  • 对一个java程序会同时或先后有多次运行的请求情况下,用..
  • 新手请求帮助:Java编译器有哪些?J2EE和Java有什么关系?
  • 做一个java的客户端,向服务器端发“GET”请求,如何做到?
  • java解析出url请求的路径和参数键值对类(解析出url请求的路径,包括页面)
  • 再次请求推荐Java书籍(适合初学者),一本书20分,怎么样?:-(
  • 用java开发一个可以各种请求(包括手机短消息,邮件等等)的标准接口,各位指指路,来者有分
  • java使用httpclient模拟post请求和get请求示例
  • java servlet问题,其实这是一个HTML问题,请求帮助!
  • 简单的java程序问题,请求回答!!!!
  • java网络编程中向指定URL发送GET POST请求示例
  • java基于包结构的请求路由实现实例分享
  • java实现http请求工具类示例
  • java发送url请求获取返回值的二种方法
  • java使用httpclient发送post请求示例
  • Facebook API 的 Java 封装请求处理组件 RestFB
  • JAVA发送HTTP请求,返回HTTP响应内容,应用及实例代码
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3