码迷,mamicode.com
首页 > 其他好文 > 详细

aaaa

时间:2015-01-08 20:01:38      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;

/*
 * LoadRunner Java script. (Build: _build_number_)
 * 
 * Script Description: 
 * 
 */
//import lrapi.lr;

public class Actions {

    private static String appkey = "113800";

    public static void main(String[] args) throws Throwable {
        new Actions().action();
    }

    public int init() throws Throwable {
        return 0;
    }// end of init

    public int action() throws Throwable {

        // String url = "http://192.168.199.182:8080/api/device/scanQrCode";
        String url = "http://192.168.199.182:8080/api/device/userInfo";

        // 69faab6268350295550de7d587bc323d
        Map<String, Object> param = new TreeMap<String, Object>();

        param.put("userId", "1");

        String sign = getSign(param);
        param.put("sign", sign);
        // /repairViewById?id=11&sign=1
        String result = HttpRequestUtil.sendPost(url, param);
        System.out.println(result);

        return 0;
    }// end of action

    public int end() throws Throwable {
        return 0;
    }// end of end

    public static String getSign(Map<String, Object> map) {
        StringBuffer sb = new StringBuffer(appkey);
        Iterator<Map.Entry<String, Object>> it = map.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<String, Object> ety = it.next();
            sb.append(ety.getKey() + "=" + ety.getValue());
        }
        sb.append(appkey);
        // System.out.println(sb);
        return md5(sb.toString());
    }

    public static String md5(String str) {
        MessageDigest messageDigest = null;
        try {
            messageDigest = MessageDigest.getInstance("MD5");
            messageDigest.reset();
            messageDigest.update(str.getBytes("UTF-8"));
        } catch (NoSuchAlgorithmException e) {
            System.out.println("NoSuchAlgorithmException caught!");
            System.exit(-1);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        byte[] byteArray = messageDigest.digest();
        StringBuffer md5StrBuff = new StringBuffer();
        for (int i = 0; i < byteArray.length; i++) {
            if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
                md5StrBuff.append("0").append(
                        Integer.toHexString(0xFF & byteArray[i]));
            else
                md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
        }
        return md5StrBuff.toString();
    }

    static class HttpRequestUtil {
        private static final String AND = "&";
        private static final String EQUAL = "=";
        private static final String QUESTION = "?";

        /**
         * 向指定URL发送GET方法的请求
         * 
         * @param url
         *            发送请求的URL
         * @param param
         *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
         * @return URL 所代表远程资源的响应结果
         */
        public static String sendGet(String url, Map<String, Object> param) {
            StringBuffer result = new StringBuffer();
            BufferedReader in = null;
            try {
                String urlNameString = url + QUESTION + getParamString(param);
                URL realUrl = new URL(urlNameString);
                // 打开和URL之间的连接
                URLConnection connection = realUrl.openConnection();
                // 设置通用的请求属性
                connection.setRequestProperty("accept", "*/*");
                connection.setRequestProperty("connection", "Keep-Alive");
                connection
                        .setRequestProperty("user-agent",
                                "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                // 建立实际的连接
                connection.connect();
                // 获取所有响应头字段
                // Map<String, List<String>> map = connection.getHeaderFields();
                // 遍历所有的响应头字段
                // for (String key : map.keySet()) {
                // System.out.println(key + "--->" + map.get(key));
                // }
                // 定义 BufferedReader输入流来读取URL的响应
                in = new BufferedReader(new InputStreamReader(
                        connection.getInputStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    result.append(line);
                }
            } catch (Exception e) {
                System.out.println("发送GET请求出现异常!" + e);
                e.printStackTrace();
            }
            // 使用finally块来关闭输入流
            finally {
                try {
                    if (in != null) {
                        in.close();
                    }
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
            return result.toString();
        }

        private static String getParamString(Map<String, Object> param) {
            if (null == param || 0 == param.keySet().size()) {
                return "";
            }
            StringBuffer paramString = new StringBuffer();
            Iterator<Map.Entry<String, Object>> iter = param.entrySet()
                    .iterator();
            while (iter.hasNext()) {
                Map.Entry<String, Object> entry = iter.next();
                paramString.append(AND).append(entry.getKey()).append(EQUAL)
                        .append(entry.getValue());
            }
            paramString = paramString.deleteCharAt(0);
            return paramString.toString();
        }

        /**
         * 向指定 URL 发送POST方法的请求
         * 
         * @param url
         *            发送请求的 URL
         * @param param
         *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
         * @return 所代表远程资源的响应结果
         */
        public static String sendPost(String url, Map<String, Object> param) {
            PrintWriter out = null;
            BufferedReader in = null;
            String result = "";
            try {
                URL realUrl = new URL(url);
                // 打开和URL之间的连接
                URLConnection conn = realUrl.openConnection();
                // 设置通用的请求属性
                conn.setRequestProperty("accept", "*/*");
                conn.setRequestProperty("connection", "Keep-Alive");
                conn.setRequestProperty("user-agent",
                        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                // 发送POST请求必须设置如下两行
                conn.setDoOutput(true);
                conn.setDoInput(true);
                // 获取URLConnection对象对应的输出流
                out = new PrintWriter(conn.getOutputStream());
                // 发送请求参数
                out.print(getParamString(param));
                // flush输出流的缓冲
                out.flush();
                // 定义BufferedReader输入流来读取URL的响应
                in = new BufferedReader(new InputStreamReader(
                        conn.getInputStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
            } catch (Exception e) {
                System.out.println("发送 POST 请求出现异常!" + e);
                e.printStackTrace();
            }
            // 使用finally块来关闭输出流、输入流
            finally {
                try {
                    if (out != null) {
                        out.close();
                    }
                    if (in != null) {
                        in.close();
                    }
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
            return result;
        }
    }
}

 

aaaa

标签:

原文地址:http://www.cnblogs.com/exmyth/p/4211615.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!