加密前:{"time":"1510053168455","username":"GH_DATA_EXCHANGE","password":"15E45RRM"}加密后:eyJ0aW1lIjoiMTUxMDA1MzE2ODQ1NSIsInVzZXJuYW1lIjoiR0hfREFUQV9FWENIQU5HRSIsInBhc3N3b3JkIjoiMTVFNDVSUk0ifQ==%7B%22r_code%22%3A%22200%22%2C%22r_msg%22%3A%22%E7%99%BB%E5%BD%95%E6%88%90%E5%8A%9F%22%2C%22count%22%3A0%2C%22data%22%3A%220ef9e732-008d-4875-a8d2-60abde59ba60%22%7D{ "r_code":"200","r_msg":"登录成功","count":0,"data":"0ef9e732-008d-4875-a8d2-60abde59ba60"}转码前:%7B%22r_code%22%3A%22200%22%2C%22r_msg%22%3A%22%E7%99%BB%E5%BD%95%E6%88%90%E5%8A%9F%22%2C%22count%22%3A0%2C%22data%22%3A%220ef9e732-008d-4875-a8d2-60abde59ba60%22%7D转码后:{ "r_code":"200","r_msg":"登录成功","count":0,"data":"0ef9e732-008d-4875-a8d2-60abde59ba60"}data<--->0ef9e732-008d-4875-a8d2-60abde59ba60%7B%22r_code%22%3A%22200%22%2C%22r_msg%22%3A%22%E6%93%8D%E4%BD%9C%E6%88%90%E5%8A%9F%22%2C%22count%22%3A0%2C%22data%22%3A%5B%5D%7D{ "r_code":"200","r_msg":"操作成功","count":0,"data":[]}转码前:%7B%22r_code%22%3A%22200%22%2C%22r_msg%22%3A%22%E6%93%8D%E4%BD%9C%E6%88%90%E5%8A%9F%22%2C%22count%22%3A0%2C%22data%22%3A%5B%5D%7D转码后:{ "r_code":"200","r_msg":"操作成功","count":0,"data":[]}{ "r_code":"200","r_msg":"操作成功","count":0,"data":[]}
package queryExpireList;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.io.UnsupportedEncodingException;import java.net.HttpURLConnection;//import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import com.rl.client1.TestLogin2Action;import net.sf.json.JSONException;import net.sf.json.JSONObject;//import org.json.JSONException;//import org.json.JSONObject;import test.BASE64;public class QueryExpireList { public static String query(String username,String password){ //定义WebService的URL //URL url = new URL("http://10.168.20.12:8888/fsWebServiceWebHall/business/login.action"); //URL url = new URL("http://10.168.13.108/fsWebServiceWebHall/business/login2.action"); //URL url = new URL("http://10.168.13.108/fsWebServiceWebHall/business/login.action"); URL url; PrintWriter ptout = null; InputStream in = null; StringBuffer sb = null; String apptoken = null; try { //url = new URL("http://10.168.20.12:8888/fsWebServiceWebHall/business/login2.action"); //url = new URL("http://10.168.41.107:8080/fsWebServiceWebHall/business/login2.action"); url = new URL("http://10.168.20.12:8888/fsWebServiceWebHall/business/queryExpireList.action"); //打开连接获得URLConnection HttpURLConnection uc = (HttpURLConnection)url.openConnection(); //打开输入输出的开关 uc.setDoInput(true); uc.setDoOutput(true);//开启输入输出 //设置Connection uc.setRequestProperty("connection", "Keep-Alive"); //设置Accept uc.setRequestProperty("accept", "*/*"); uc.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); //组装消息体 apptoken = TestLogin2Action.getLogin(username, password); //根据HttpURLConnection获得输出流 OutputStream out = uc.getOutputStream(); // 获取URLConnection对象对应的输出流 ptout = new PrintWriter(out); // 发送请求参数 //ptout.print("appkey="+appkey); ptout.print("apptoken="+apptoken); // flush输出流的缓冲 ptout.flush(); //out.write(encodeappkey.getBytes()); //int httpCode = httpuc.getResponseCode(); //System.out.println(httpCode); //如果请求成功 //if(httpuc.getResponseCode()==200){ //获得输入流 in = uc.getInputStream();//通过输入流把消息接收完 //使用输入缓冲区 BufferedReader br = new BufferedReader(new InputStreamReader(in,"utf-8")); //写Socket的那种输入流的方式来读它 String line = null; //读取响应的消息 sb = new StringBuffer(); while((line = br.readLine())!=null ){ sb.append(line); } }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{ try{ if(ptout!=null){ ptout.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } String decodesb = ""; System.out.println(sb.toString()); try { decodesb = java.net.URLDecoder.decode(sb.toString(),"UTF-8"); System.out.println(decodesb); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("转码前:"+sb); System.out.println("转码后:" + decodesb);/*// 创建JSON解析对象(两条规则的体现:大括号用JSONObject,注意传入数据对象) JSONObject obj; String data = null; try { //obj = new JSONObject(decodesb); obj = JSONObject.fromObject(decodesb); //obj.后面有各种数据类型,根据对象来选择使用的数据类型 data = obj.getString("data"); // 同理如上,这里的age为Int类型,我们就用对应的类型进行解析 //int age = obj.getInt("age"); // 最后输出到控制台 System.out.println("data"+"<--->"+data); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } */ return decodesb; } public static void main(String[] args){ //String queryExpireList = QueryExpireList.query("0216", "1234"); //String apptoken = TestLogin2Action.getLogin("GH_DATA_EXCHANGE","15E45RRM"); String queryExpireList = QueryExpireList.query("GH_DATA_EXCHANGE", "15E45RRM"); System.out.println(queryExpireList); } public static void main1(String[] args){ //定义WebService的URL //URL url = new URL("http://10.168.20.12:8888/fsWebServiceWebHall/business/login.action"); //URL url = new URL("http://10.168.13.108/fsWebServiceWebHall/business/login2.action"); //URL url = new URL("http://10.168.13.108/fsWebServiceWebHall/business/login.action"); URL url; PrintWriter ptout = null; InputStream in = null; StringBuffer sb = null; try { //url = new URL("http://10.168.20.12:8888/fsWebServiceWebHall/business/login2.action"); url = new URL("http://10.168.20.12:8888/fsWebServiceWebHall/business/queryExpireList.action"); //打开连接获得URLConnection URLConnection uc = url.openConnection(); //强转成HttpURLConnection //HttpURLConnection httpuc = (HttpURLConnection) uc; //打开输入输出的开关 uc.setDoInput(true); uc.setDoOutput(true);//开启输入输出 //设置请求方式 //uc.setRequestMethod("POST"); //设置Connection uc.setRequestProperty("connection", "Keep-Alive"); //设置Charset //httpuc.setRequestProperty("Charset", "UTF-8"); //设置Accept //httpuc.setRequestProperty("Accept", "application/json"); uc.setRequestProperty("accept", "*/*"); //设置content-type //httpuc.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); //httpuc.setRequestProperty("Content-Type", "text/html"); uc.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); //组装消息体 //String data = "c1f2e41650919327d85367194f75d4cf6a5f39dcef42ae6a3c33015ca92935009d6c6c4ed59a67637d54f29f7e77b9e2af95afddd4dc77b28a3d1d5056a52fe11ea6f735f35d8b62b3c2ebd9d43e533d";/* Date date = new Date(); DateFormat dateTimeformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //DateFormat dateTimeformat = new SimpleDateFormat("yyyyMMddHHmmss"); String strBeginDate = dateTimeformat.format(date); System.out.println(date); System.out.println(strBeginDate); String appkey = "02161234"+date; appkey = "02241234"+strBeginDate; String data = java.net.URLEncoder.encode(appkey, "utf-8"); System.out.println("编码后:" + data);//加密后 */ String username = "GH_DATA_EXCHANGE"; // 用户账号 String password = "15E45RRM"; // 密码 long time = System.currentTimeMillis(); // 当前时间,毫秒 //String str="{\"username\":"+ username +",\"password\":"+ password +",\"time\": "+ time +"}"; // 原数据 //String str="{\"username\":"+ username +",\"password\":"+ password +",\"time\":"+ time +"}"; // 原数据 //String str="{\"time\":"+ time +",\"username\":"+ username +",\"password\":"+ password +"}"; // 原数据 String str = "{\"time\":\""+time+"\",\"username\":\""+username+"\",\"password\":\""+password+"\"}"; // 原数据 //String str = username+password+time; //String appkey = AES.method1(str); System.out.println("加密前:"+str); //SymmetricEncoder se=new SymmetricEncoder(); //String appkey = se.AESEncode("使用AES对称加密", str); //System.out.println("根据输入的规则"+"使用AES对称加密"+"加密后的密文是:"+se.AESEncode("使用AES对称加密", str)); //System.out.println("根据输入的规则"+"使用AES对称解密"+"解密后的明文是:"+se.AESDncode("使用AES对称解密",se.AESEncode("使用AES对称加密", str))); //System.out.println("根据输入的规则"+"使用AES对称解密"+"解密后的明文是:"+se.AESDncode("使用AES对称解密",appkey)); //System.out.println("加密后:" + appkey); // 加密后 //appkey = "fB75+Z+CXIuVwqDNJYbKzZmHuVGORfL9TxqEx5AXE5w="; // String encode = java.net.URLEncoder.encode(str,"utf-8"); // System.out.println("编码后:" + encode); String appkey = BASE64.encryptBASE64(str.toString().getBytes()); //String appkey = new sun.misc.BASE64Encoder().encode(str.toString().getBytes()); // String appkey = BASE64.encryptBASE64(encode.getBytes()); //appkey = "eyJ1c2VybmFtZSI6Imd6OTkiLCJwYXNzd29yZCI6IjEyMzQiLCJ0aW1lIjogMTQ0ODQzMjY3NTE5NH0="; //appkey = "c1f2e41650919327d85367194f75d4cf6a5f39dcef42ae6a3c33015ca92935009d6c6c4ed59a67637d54f29f7e77b9e2af95afddd4dc77b28a3d1d5056a52fe11ea6f735f35d8b62b3c2ebd9d43e533d"; System.out.println("加密后:"+appkey); //String data = "eyJ1c2VybmFtZSI6Imd6OTkiLCJwYXNzd29yZCI6IjEyMzQiLCJ0aW1lIjogMTQ0ODQzMjY3NTE5NH0=";/* Date date = new Date(); String appkey = "02241234"+date; String data = java.net.URLEncoder.encode(appkey, "utf-8"); System.out.println("编码后:" + data);//加密后*/ //根据HttpURLConnection获得输出流 OutputStream out = uc.getOutputStream(); //用输出流把消息发送到服务端 //out.write(data.getBytes());//已经把消息给写过去了. //System.out.println(appkey.getBytes()); //String encodeappkey = java.net.URLEncoder.encode(appkey,"utf-8"); //out.write(appkey.getBytes());//已经把消息给写过去了. // 获取URLConnection对象对应的输出流 ptout = new PrintWriter(out); // 发送请求参数 ptout.print("appkey="+appkey); // flush输出流的缓冲 ptout.flush(); //out.write(encodeappkey.getBytes()); //int httpCode = httpuc.getResponseCode(); //System.out.println(httpCode); //如果请求成功 //if(httpuc.getResponseCode()==200){ //获得输入流 in = uc.getInputStream();//通过输入流把消息接收完 //使用输入缓冲区 BufferedReader br = new BufferedReader(new InputStreamReader(in,"utf-8")); //写Socket的那种输入流的方式来读它 String line = null; //读取响应的消息 sb = new StringBuffer(); while((line = br.readLine())!=null ){ sb.append(line); } }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{ try{ if(ptout!=null){ ptout.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } String decodesb = null; try { decodesb = java.net.URLDecoder.decode(sb.toString(),"UTF-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("转码前:"+sb); System.out.println("转码后:" + decodesb); // 创建JSON解析对象(两条规则的体现:大括号用JSONObject,注意传入数据对象) JSONObject obj; try { //obj = new JSONObject(decodesb); obj = JSONObject.fromObject(decodesb); //obj.后面有各种数据类型,根据对象来选择使用的数据类型 String data = obj.getString("data"); // 同理如上,这里的age为Int类型,我们就用对应的类型进行解析 //int age = obj.getInt("age"); // 最后输出到控制台 System.out.println("data"+"<--->"+data); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } //StringBuffer是一个可变字符串,我们要把它变成一个文档来解析 //java代码里面解析XML //解析消息,定义读取器对象SAXReader /*SAXReader reader = new SAXReader(); //获得文档对象 Document doc = reader.read(new StringReader(sb.toString()));//它的返回值是一个文档对象Document //使用XPath的方式获得到return这个元素的集合 ListeList = doc.selectNodes("//return"); //遍历元素集合 for (Element element : eList) { System.out.println(element.getText()); }*/ } }//}