zoukankan      html  css  js  c++  java
  • httpClient

    package com.qianye.zhaimi.common;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.HttpStatus;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.ResponseHandler;
    import org.apache.http.client.config.RequestConfig;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPatch;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.config.Registry;
    import org.apache.http.config.RegistryBuilder;
    import org.apache.http.conn.socket.ConnectionSocketFactory;
    import org.apache.http.conn.socket.PlainConnectionSocketFactory;
    import org.apache.http.entity.ByteArrayEntity;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
    import org.apache.http.util.EntityUtils;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.io.SAXReader;
    
    import java.io.*;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLEncoder;
    import java.util.*;
    
    /**
     * Created by wanglong on 15/8/4.
     * http 请求工具类(包括post和get方法)
     */
    public class HttpRequestUtil {
    
        private static final String UTF8 = "UTF-8";
    
        //将Map转成可以拼接成url的String
        private static String urlFix(Map<String, Object> paramMap) {
            StringBuffer sb = new StringBuffer();
    
            if (paramMap == null) {
                return "";
            } else {
                for (String key : paramMap.keySet()) {
                    String value = String.valueOf(paramMap.get(key));
                    if (sb.length() < 1) {
                        sb.append(key).append("=").append(value);
                    } else {
                        sb.append("&").append(key).append("=").append(value);
                    }
                }
                return sb.toString();
            }
        }
    
        public static String doPost(String urlStr, Map<String, Object> params) {
            String result = "";
            HttpURLConnection conn = null;
            BufferedReader br = null;
            try {
                StringBuilder postData = new StringBuilder();
                for (Map.Entry<String, Object> param : params.entrySet()) {
                    if (postData.length() != 0) postData.append('&');
                    postData.append(URLEncoder.encode(param.getKey(), UTF8));
                    postData.append('=');
                    postData.append(URLEncoder.encode(String.valueOf(param.getValue()), UTF8));
                }
                byte[] postDataBytes = postData.toString().getBytes(UTF8);
    
                URL url = new URL(urlStr);
    
                conn = (HttpURLConnection) url.openConnection();
                conn.setRequestMethod("POST");
                conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
                conn.setDoOutput(true);
                conn.getOutputStream().write(postDataBytes);
    
                br = new BufferedReader(new InputStreamReader(conn.getInputStream(), UTF8));
                String line;
                while ((line = br.readLine()) != null) {
                    result += line;
                }
            } catch (Exception e) {
                System.out.println("Call to " + urlStr + " failed.");
                e.printStackTrace();
            } finally {
                try {
                    if (conn != null) {
                        conn.disconnect();
                    }
                    if (br != null) {
                        br.close();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return result;
        }
    
        public static String doPostJSON(String urlStr, Map<String, Object> params) {
            String result = "";
            Object jsonObject = JSONObject.toJSON(params);
            String postData = jsonObject.toString();
            CloseableHttpResponse response = null;
            CloseableHttpClient httpclient = null;
            try {
                httpclient = HttpClients.createDefault();
                HttpPost httpPost = new HttpPost(urlStr);
                httpPost.setHeader("Accept", "application/json");
                httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
                HttpEntity entity = new ByteArrayEntity(postData.getBytes(UTF8));
                httpPost.setEntity(entity);
                response = httpclient.execute(httpPost);
                result = EntityUtils.toString(response.getEntity());
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    response.close();
                    httpclient.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return result;
        }
    
        public static String patchRequest(String urlStr, Map<String, Object> params) {
            String result = "";
            Object jsonObject = JSONObject.toJSON(params);
            String postData = jsonObject.toString();
            CloseableHttpResponse response = null;
            CloseableHttpClient httpclient = null;
            try {
                httpclient = HttpClients.createDefault();
                HttpPatch httpPatch = new HttpPatch(urlStr);
                httpPatch.setHeader("Accept", "application/json");
                httpPatch.setHeader("Content-Type", "application/json");
                HttpEntity entity = new ByteArrayEntity(postData.getBytes(UTF8));
                httpPatch.setEntity(entity);
                response = httpclient.execute(httpPatch);
                result = EntityUtils.toString(response.getEntity());
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    response.close();
                    httpclient.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return result;
        }
    
    
        public static String doGet(String urlStr, Map<String, Object> paramMap) {
    
            urlStr += "?" + urlFix(paramMap);
            String responseBody = null;
            CloseableHttpClient httpclient = HttpClients.createDefault();
            try {
                HttpGet httpget = new HttpGet(urlStr);
                httpget.addHeader("Content-Type", "text/html;charset=UTF-8");
                ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
                    public String handleResponse(
                            final HttpResponse response) throws IOException {
                        int status = response.getStatusLine().getStatusCode();
                        if (status >= 200 && status < 300) {
                            HttpEntity entity = response.getEntity();
                            return entity != null ? EntityUtils.toString(entity, UTF8) : null;
                        } else {
                            throw new ClientProtocolException("Unexpected response status: " + status);
                        }
                    }
                };
                responseBody = httpclient.execute(httpget, responseHandler);
                return responseBody;
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    httpclient.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return responseBody;
        }
    
        /**
         * 把数组所有元素排序,并按照“参数=参数值”的模式用“&amp;”字符拼接成字符串
         *
         * @param params 需要排序并参与字符拼接的参数组
         * @return 拼接后字符串
         */
        public static String createLinkString(Map<String, Object> params) {
            List<String> keys = new ArrayList<String>(params.keySet());
            Collections.sort(keys);
            StringBuffer prestr = new StringBuffer();
            int size = keys.size() - 1;
            for (int i = 0; i < size; i++) {
                String key = keys.get(i);
                Object value = params.get(key);
                prestr.append(key).append("=").append(value).append("&");
            }
            String key = keys.get(size);
            Object value = params.get(key);
            prestr.append(key).append("=").append(value);//拼接时,不包括最后一个&字符
            return prestr.toString();
        }
    
        private static final int TOTAL_CONN = 50;  // Increase max total connection to 50
        private static final int DEFAULT_CONN = 10; // Increase default max connection per route to 10
        private static PoolingHttpClientConnectionManager poolConnManager;
    
        //初始化代码
        static {
            Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
                    .register("http", PlainConnectionSocketFactory.getSocketFactory())
                    .build();
            //初始化连接管理器
            poolConnManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
            poolConnManager.setMaxTotal(TOTAL_CONN);
            poolConnManager.setDefaultMaxPerRoute(DEFAULT_CONN);
        }
    
        /**
         * @return 构造请求超时配置对象
         */
        private static RequestConfig generateRequestConfig() {
            return RequestConfig.custom()
                    .setSocketTimeout(5000)
                    .setConnectTimeout(5000)
                    .setConnectionRequestTimeout(5000)
                    .build();
        }
    
        public static JSONObject doGetJSONObject(String urlStr, Map<String, Object> params) throws IOException {
            return defaultDoGet(urlStr, params, new DefaultJsonHandler());
        }
    
        public static String doGetString(String urlStr, Map<String, Object> params) throws IOException {
            return defaultDoGet(urlStr, params, new DefaultStringHandler());
        }
    
        public static Document doGetXML(String urlStr, Map<String, Object> params) throws IOException {
            return defaultDoGet(urlStr, params, new DefaultXmlHandler());
        }
    
        //发送请求 url
        private static <T> T defaultDoGet(String urlStr, Map<String, Object> params, ResponseHandler<T> handler)
                throws UnsupportedEncodingException, ClientProtocolException, IOException {
            //参数检测
            if (urlStr == null || "".equals(urlStr)) {
                return null;
            }
            if (params != null) {
                urlStr += "?" + urlFix(params);
            }
    
            CloseableHttpClient httpClient = HttpClients.custom()
                    .setConnectionManager(poolConnManager).build();
            HttpGet httpGet = generateHttpGet(urlStr);
            return httpClient.execute(httpGet, handler);
        }
    
        /**
         * post请求
         * head 为"Content-Type", "application/json")
         *
         * @param urlStr       传入json 字符串
         * @param postJSONData 响应内容自动转换为JSON object
         * @return
         */
        public static JSONObject doPostFromJSONtoJSON(String urlStr, String postJSONData)
                throws IOException {
            HttpPost httpPost = generateJSONHttpPost(urlStr);
            HttpEntity entity = new ByteArrayEntity(postJSONData.getBytes(UTF8));
            httpPost.setEntity(entity);
            return defaultDoPOST(httpPost, new DefaultJsonHandler());
        }
    
        public static JSONObject doPostFromJSONtoJSON(String urlStr, Map<String, Object> params)
                throws IOException {
            Object jsonObject = JSONObject.toJSON(params);
            String postJSONData = jsonObject.toString();
            return doPostFromJSONtoJSON(urlStr, postJSONData);
        }
    
        public static String doPostFromJSONtoString(String urlStr, String postJSONData)
                throws IOException {
            HttpPost httpPost = generateJSONHttpPost(urlStr);
            HttpEntity entity = new ByteArrayEntity(postJSONData.getBytes(UTF8));
            httpPost.setEntity(entity);
            return defaultDoPOST(httpPost, new DefaultStringHandler());
        }
    
        public static String doPostFromJSONtoString(String urlStr, Map<String, Object> params)
                throws IOException {
            Object jsonObject = JSONObject.toJSON(params);
            String postJSONData = jsonObject.toString();
            return doPostFromJSONtoString(urlStr, postJSONData);
        }
    
        public static String doPostFromParamtoString(String urlStr, Map<String, Object> params)
                throws IOException {
            HttpPost httpPost = generateParamHttpPost(urlStr, params);
            return defaultDoPOST(httpPost, new DefaultStringHandler());
        }
    
        public static JSONObject doPostFromParamtoJSON(String urlStr, Map<String, Object> params)
                throws IOException {
            HttpPost httpPost = generateParamHttpPost(urlStr, params);
            return defaultDoPOST(httpPost, new DefaultJsonHandler());
        }
    
        private static <T> T defaultDoPOST(HttpPost httpPost, ResponseHandler<T> handler)
                throws IOException {
            CloseableHttpClient httpClient = HttpClients.custom()
                    .setConnectionManager(poolConnManager).build();
            return httpClient.execute(httpPost, handler);
        }
    
        public static String doPatchString(String urlStr, String patchJSONData) throws IOException {
            HttpPatch httpPatch = generateHttpPatch(urlStr);
            HttpEntity entity = null;
            try {
                entity = new ByteArrayEntity(patchJSONData.getBytes(UTF8));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            httpPatch.setEntity(entity);
            return defaultDoPatch(httpPatch, new DefaultStringHandler());
        }
    
        public static String doPatchString(String urlStr, Map<String, Object> params) throws IOException {
            Object jsonObject = JSONObject.toJSON(params);
            String postData = jsonObject.toString();
            return doPatchString(urlStr, postData);
        }
    
        private static <T> T defaultDoPatch(HttpPatch httpPatch, ResponseHandler<T> handler)
                throws IOException {
            CloseableHttpClient httpClient = HttpClients.custom()
                    .setConnectionManager(poolConnManager).build();
            return httpClient.execute(httpPatch, handler);
        }
    
        private static abstract class AbstractResponseHandler<T> implements ResponseHandler<T> {
            private final static int BUF_SIZE = 0x2000;
    
            private byte[] mBuffer = new byte[BUF_SIZE];
    
            public interface FailureCallback {
                public void onException(Throwable msg);
    
                public void onFailure(int statusCode, HttpResponse response);
            }
    
            private FailureCallback mCallback;
    
            public void setFailureCallbak(FailureCallback c) {
                mCallback = c;
            }
    
            protected abstract T readObject(byte[] transTemp) throws IOException, DocumentException;
    
            public T handleResponse(HttpResponse response) {
                if (response != null) {
                    final int statusCode = response.getStatusLine().getStatusCode();
                    if (statusCode == HttpStatus.SC_OK) {
                        try (InputStream is = response.getEntity().getContent()) {
                            if (is != null) {
                                JSONObject retJsonObj = null;
                                int bytesRead = -1;
                                try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
                                    while ((bytesRead = is.read(mBuffer)) != -1) {
                                        baos.write(mBuffer, 0, bytesRead);
                                    }
                                    byte[] transTemp = baos.toByteArray();
                                    return readObject(transTemp);
                                }
                            }
                        } catch (Exception e) {
                            if (mCallback != null)
                                mCallback.onException(e);
                            e.printStackTrace();
                        }
                    } else {
                        if (mCallback != null)
                            mCallback.onFailure(statusCode, response);
                    }
                } else {
                    if (mCallback != null) {
                        mCallback.onException(new IllegalArgumentException("response is null"));
                    }
                }
    
                return null;
            }
        }
    
        private static class DefaultJsonHandler extends AbstractResponseHandler<JSONObject> {
            private final static int BUF_SIZE = 0x2000;
    
            private byte[] mBuffer;
    
            public DefaultJsonHandler() {
                mBuffer = new byte[BUF_SIZE];
            }
    
            @Override
            protected JSONObject readObject(byte[] transTemp) throws IOException {
                return JSON.parseObject(new String(transTemp, UTF8));
            }
    
        }
    
        private static class DefaultStringHandler extends AbstractResponseHandler<String> {
    
            private final static int BUF_SIZE = 0x2000;
    
            private byte[] mBuffer;
    
            public DefaultStringHandler() {
                mBuffer = new byte[BUF_SIZE];
            }
    
            @Override
            protected String readObject(byte[] transTemp) throws UnsupportedEncodingException {
                return new String(transTemp, UTF8);
            }
    
            private final void close(OutputStream o) {
                if (o != null) {
                    try {
                        o.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
        private static class DefaultXmlHandler extends AbstractResponseHandler<Document> {
    
            @Override
            protected Document readObject(byte[] transTemp)
                    throws UnsupportedEncodingException, DocumentException {
                Document document = null;
                SAXReader reader = new SAXReader();
                return reader.read(new String(transTemp, UTF8));
            }
        }
    
        private static HttpGet generateHttpGet(String urlStr) {
            HttpGet httpGet = new HttpGet(urlStr);
            httpGet.setConfig(generateRequestConfig());
            return httpGet;
        }
    
        private static HttpPatch generateHttpPatch(String urlStr) {
            HttpPatch httpPatch = new HttpPatch(urlStr);
            httpPatch.setHeader("Accept", "application/json");
            httpPatch.setHeader("Content-Type", "application/json");
            httpPatch.setConfig(generateRequestConfig());
            return httpPatch;
        }
    
        private static HttpPost generateJSONHttpPost(String urlStr) {
            HttpPost httpPost = new HttpPost(urlStr);
            httpPost.setHeader("Accept", "application/json");
            httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
            httpPost.setConfig(generateRequestConfig());
            return httpPost;
        }
    
        private static HttpPost generateParamHttpPost(String urlStr, Map<String, Object> params) {
            HttpPost httpPost = new HttpPost(urlStr);
            httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
            StringBuilder postData = new StringBuilder();
            try {
                for (Map.Entry<String, Object> param : params.entrySet()) {
                    if (postData.length() != 0) postData.append('&');
                    postData.append(URLEncoder.encode(param.getKey(), UTF8));
                    postData.append('=').append(URLEncoder.encode(String.valueOf(param.getValue()), UTF8));
                }
                byte[] postDataBytes = postData.toString().getBytes(UTF8);
                HttpEntity entity = new ByteArrayEntity(postDataBytes);
                httpPost.setEntity(entity);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            httpPost.setHeader("Content-Length", String.valueOf(postData.length()));
            httpPost.setConfig(generateRequestConfig());
            return httpPost;
        }
    
        public static void main(String args[]) throws Exception {
    
            String url = "http://m.test.zhai.me/customer/api/v3/payVerify/alipayPayinfo";
            Map<String, Object> param = new HashMap<String, Object>();
            param.put("phone", "15202129056");
            long begin = System.currentTimeMillis();
    
            for (int i = 0; i < 1; i++) {
    //            String result = doPost(url, param);
                JSONObject result = doPostFromJSONtoJSON(url, param);
                System.out.println(result);
            }
            System.out.println(System.currentTimeMillis() - begin);
        }
    }
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.qianye.zhaimi</groupId>
        <artifactId>util</artifactId>
        <packaging>jar</packaging>
        <version>3.4.8</version>
        <name>util</name>
        <url>http://maven.apache.org</url>
        <repositories>
            <repository>
                <id>nexus</id>
                <name>nexus</name>
                <url>http://nexus.zhai.me/nexus/content/groups/public</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
        </repositories>
    
        <pluginRepositories>
            <pluginRepository>
                <id>nexus</id>
                <name>nexus</name>
                <url>http://nexus.zhai.me/nexus/content/groups/public/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>
        <dependencies>
            <!--jpush songjie-add-start -->
            <dependency>
                <groupId>cn.jpush.api</groupId>
                <artifactId>jpush-client</artifactId>
                <version>3.1.3</version>
            </dependency>
    
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.2.4</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.5</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.7.5</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.16</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>17.0</version>
            </dependency>
            <dependency>
                <groupId>com.squareup.okhttp</groupId>
                <artifactId>mockwebserver</artifactId>
                <version>1.5.4</version>
                <scope>test</scope>
            </dependency>
            <!-- jest 0.1.6 -->
            <dependency>
                <groupId>io.searchbox</groupId>
                <artifactId>jest</artifactId>
                <version>0.1.6</version>
            </dependency>
            <!-- json request -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.5.4</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.5.4</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>2.5.4</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
                <version>1.1.0.Final</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>1.2</version>
                <scope>provided</scope>
            </dependency>
            <!--jpush songjie-add-end-->
            <!--<dependency>
                <groupId>javax</groupId>
                <artifactId>javaee-web-api</artifactId>
                <version>6.0</version>
                <scope>provided</scope>
            </dependency>-->
            <!-- Spring 4 dependencies -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>4.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>4.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>4.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>4.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>4.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>4.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
                <version>4.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>4.1.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>4.1.2.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.4</version>
            </dependency>
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>1.3.1</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.4</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.6</version>
            </dependency>
            <dependency>
                <groupId>dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>1.6.1</version>
            </dependency>
            <!-- 七牛 SDK -->
            <dependency>
                <groupId>com.qiniu</groupId>
                <artifactId>qiniu-java-sdk</artifactId>
                <version>[7.0.0, 7.0.99]</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.1.41</version>
            </dependency>
            <!-- redis -->
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>2.7.2</version>
            </dependency>
    
            <!-- mongo-->
            <dependency>
                <groupId>org.mongodb</groupId>
                <artifactId>mongo-java-driver</artifactId>
                <version>3.1.0</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.3.5</version>
            </dependency>
    
            <!-- test -->
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>1.9.5</version>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>4.1.2.RELEASE</version>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-mock</artifactId>
                <version>2.0.8</version>
            </dependency>
    
            <dependency>
                <groupId>com.jayway.jsonpath</groupId>
                <artifactId>json-path</artifactId>
                <version>2.0.0</version>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>com.github.kstyrc</groupId>
                <artifactId>embedded-redis</artifactId>
                <version>0.6</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.thoughtworks.xstream</groupId>
                <artifactId>xstream</artifactId>
                <version>1.4.7</version>
            </dependency>
            <dependency>
                <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>3.1</version>
            </dependency>
            <dependency>
                <groupId>com.qianye.zhaimi</groupId>
                <artifactId>alipay-sdk</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.9.2</version>
            </dependency>
    
            <!-- dbunit -->
            <dependency>
                <groupId>org.dbunit</groupId>
                <artifactId>dbunit</artifactId>
                <version>2.5.0</version>
                <type>jar</type>
            </dependency>
    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    
        <!--自动将项目打包到私服上 -->
        <distributionManagement>
            <repository>
                <id>releases</id>
                <name>releases</name>
                <url>http://nexus.zhai.me/nexus/content/repositories/releases/</url>
            </repository>
            <snapshotRepository>
                <id>snapshots</id>
                <name>snapshots</name>
                <url>http://nexus.zhai.me/nexus/content/repositories/snapshots/</url>
            </snapshotRepository>
        </distributionManagement>
    
    
    </project>
    
    
  • 相关阅读:
    poj 2584 T-Shirt Gumbo (二分匹配)
    hdu 1757 A Simple Math Problem (乘法矩阵)
    矩阵之矩阵乘法(转载)
    poj 2239 Selecting Courses (二分匹配)
    hdu 3661 Assignments (贪心)
    hdu 1348 Wall (凸包)
    poj 2060 Taxi Cab Scheme (二分匹配)
    hdu 2202 最大三角形 (凸包)
    hdu 1577 WisKey的眼神 (数学几何)
    poj 1719 Shooting Contest (二分匹配)
  • 原文地址:https://www.cnblogs.com/snifferhu/p/7091420.html
Copyright © 2011-2022 走看看