java实现京东登陆示例分享

 更新时间:2014年03月02日 09:32:15   作者:  
这篇文章主要介绍了使用java实现的京东商城登陆示例,需要的朋友可以参考下

复制代码 代码如下:

package com.lkb.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.http.HttpResponse;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.message.BufferedHeader;
import org.apache.http.protocol.HTTP;

import com.util.Constant;

public class JD {
    // The configuration items

   
    private static String redirectURL = "http://order.jd.com/center/list.action";
    private static String loginUrl = "http://passport.jd.com/uc/login";
    // Don't change the following URL
    private static String renRenLoginURL = "https://passport.jd.com/uc/loginService";

    // The HttpClient is used in one session
    private HttpResponse response;
    private DefaultHttpClient httpclient = new DefaultHttpClient();

    public  Map<String,String> getParams(){
     Map<String,String> map = new HashMap<String,String>();
     String str = getText(loginUrl);
     String strs1[] = str.split("name=\"uuid\" value=\"");
     String strs2[] = strs1[1].split("\"/>");
     String uuid = strs2[0];
     map.put("uuid", uuid);
     System.out.println(strs2[0]);
     String str3s[] = strs1[1].split("<span class=\"clr\"></span><input type=\"hidden\" name=\"");
     String strs4[] = str3s[1].split("/>");
     String strs5[] = strs4[0].trim().split("\"");
     String key = strs5[0];
     String value = strs5[2];
     map.put(key, value);
     return map;
    }
    private boolean login() {
     Map map = getParams();

        HttpPost httpost = new HttpPost(renRenLoginURL);
        // All the parameters post to the web site
        List<BasicNameValuePair> nvps = new ArrayList<BasicNameValuePair>();
        nvps.add(new BasicNameValuePair("ReturnUrl", redirectURL));
        nvps.add(new BasicNameValuePair("loginname", Constant.userName));
        nvps.add(new BasicNameValuePair("nloginpwd", Constant.password));
        nvps.add(new BasicNameValuePair("loginpwd", Constant.password));
        Iterator it = map.keySet().iterator();
        while(it.hasNext()) {
         String key = it.next().toString();
         String value = map.get(key).toString();
         nvps.add(new BasicNameValuePair(key, value));

        }

        try {
            httpost.setEntity(new UrlEncodedFormEntity((List<? extends org.apache.http.NameValuePair>) nvps, HTTP.UTF_8));
            response = httpclient.execute(httpost);
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        } finally {
            httpost.abort();
        }
        return true;
    }

    private String getRedirectLocation() {
     BufferedHeader locationHeader =  (BufferedHeader) response.getFirstHeader("Location");
        if (locationHeader == null) {
            return null;
        }
        return locationHeader.getValue();
    }

    private String getText(String redirectLocation) {
        HttpGet httpget = new HttpGet(redirectLocation);
        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        String responseBody = "";
        try {
            responseBody = httpclient.execute(httpget, responseHandler);
        } catch (Exception e) {
            e.printStackTrace();
            responseBody = null;
        } finally {
            httpget.abort();
            //httpclient.getConnectionManager().shutdown();
        }
        return responseBody;
    }

    public void printText() {
        if (login()) {        
         System.out.println(getText(redirectURL));
           String redirectLocation = getRedirectLocation();
            if (redirectLocation != null) {
                System.out.println(getText(redirectLocation));
            }
        }
    }

    public static void main(String[] args) {
          JD renRen = new JD();
          //renRen.getParams();
          renRen.printText();
    }
}

相关文章

  • Java调用外接设备详解(制卡机)

    Java调用外接设备详解(制卡机)

    这篇文章主要为大家详细介绍了Java调用外接设备的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • java字符串如何只保留数字、字母、中文

    java字符串如何只保留数字、字母、中文

    这篇文章主要介绍了java字符串如何只保留数字、字母、中文问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Java追加文件内容的三种方法实例代码

    Java追加文件内容的三种方法实例代码

    本篇文章主要介绍了Java追加文件内容的三种方法实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • java加密解密示例分享

    java加密解密示例分享

    想要创造一个只有自己能看懂的文件吗?那就是对数据加密吧,下面分享一个java的数据加密与解密示例
    2014-01-01
  • Spring Boot ActiveMQ发布/订阅消息模式原理解析

    Spring Boot ActiveMQ发布/订阅消息模式原理解析

    这篇文章主要介绍了Spring Boot ActiveMQ发布/订阅消息模式原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Java基本数据类型和运算符详解

    Java基本数据类型和运算符详解

    这篇文章主要介绍了Java基本数据类型和运算符,结合实例形式详细分析了java基本数据类型、数据类型转换、算术运算符、逻辑运算符等相关原理与操作技巧,需要的朋友可以参考下
    2020-02-02
  • JAVA中Context的详细介绍和实例分析

    JAVA中Context的详细介绍和实例分析

    这篇文章主要介绍了JAVA中Context的详细介绍和实例分析,Context是维持android各组件能够正常工作的一个核心功能类。如果感兴趣来学习一下
    2020-07-07
  • Spring Boot DevTools 全局配置学习指南

    Spring Boot DevTools 全局配置学习指南

    这篇文章主要介绍了Spring Boot DevTools 全局配置,注意包括直接重启项目与devtools重启的区别,DevTools配置,DevTools全局配置及trigger-file控制重启行为的相关知识,需要的朋友可以参考下
    2022-03-03
  • Springboot中Jackson用法详解

    Springboot中Jackson用法详解

    Springboot自带默认json解析Jackson,可以在不引入其他json解析包情况下,解析json字段,下面我们就来聊聊Springboot中Jackson的用法吧
    2025-01-01
  • swagger配置正式环境中不可访问的问题

    swagger配置正式环境中不可访问的问题

    这篇文章主要介绍了swagger配置正式环境中不可访问的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论