diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/FormBodyWrapperFilterExt.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/FormBodyWrapperFilterExt.java
index 96fce214..8091b7b2 100644
--- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/FormBodyWrapperFilterExt.java
+++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/FormBodyWrapperFilterExt.java
@@ -11,15 +11,4 @@ public class FormBodyWrapperFilterExt extends FormBodyWrapperFilter {
return BaseZuulFilter.FORM_BODY_WRAPPER_FILTER_ORDER;
}
- // @Override
-// public boolean shouldFilter() {
-// RequestContext ctx = RequestContext.getCurrentContext();
-// HttpServletRequest request = ctx.getRequest();
-// // 如果是文件上传请求,不需要包装
-// if (RequestUtil.isMultipart(request)) {
-// return false;
-// } else {
-// return super.shouldFilter();
-// }
-// }
}
diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/Servlet30WrapperFilterExt.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/Servlet30WrapperFilterExt.java
index 336a2ed1..791eedf8 100644
--- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/Servlet30WrapperFilterExt.java
+++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/Servlet30WrapperFilterExt.java
@@ -11,15 +11,4 @@ public class Servlet30WrapperFilterExt extends Servlet30WrapperFilter {
return BaseZuulFilter.SERVLET_30_WRAPPER_FILTER_ORDER;
}
- // @Override
-// public boolean shouldFilter() {
-// RequestContext ctx = RequestContext.getCurrentContext();
-// HttpServletRequest request = ctx.getRequest();
-// // 如果是文件上传请求,不需要包装
-// if (RequestUtil.isMultipart(request)) {
-// return false;
-// } else {
-// return super.shouldFilter();
-// }
-// }
}
diff --git a/sop-sdk/sdk-java/src/main/java/com/gitee/sop/sdk/client/OpenRequest.java b/sop-sdk/sdk-java/src/main/java/com/gitee/sop/sdk/client/OpenRequest.java
index 959c3624..8c4fe67b 100644
--- a/sop-sdk/sdk-java/src/main/java/com/gitee/sop/sdk/client/OpenRequest.java
+++ b/sop-sdk/sdk-java/src/main/java/com/gitee/sop/sdk/client/OpenRequest.java
@@ -42,9 +42,7 @@ public class OpenRequest {
}
return openHttp.get(url, header);
} else {
- return openHttp.request(url, form, header, requestMethod.name());
- // 下面这种方式也可以,以application/json方式请求
- // return openHttp.requestJson(url, JSON.toJSONString(form), header);
+ return openHttp.requestJson(url, JSON.toJSONString(form), header);
}
}
} catch (IOException e) {
diff --git a/sop-test/pom.xml b/sop-test/pom.xml
index d0e28885..32057a51 100644
--- a/sop-test/pom.xml
+++ b/sop-test/pom.xml
@@ -12,8 +12,6 @@
sop-test
sop-test
-
- http://www.example.com
UTF-8
@@ -23,28 +21,20 @@
- junit
- junit
- 4.11
- test
-
-
- org.apache.httpcomponents
- httpclient
- 4.5.6
- test
+ com.squareup.okhttp3
+ okhttp
+ 3.14.0
+ compile
commons-io
commons-io
2.5
- test
com.alibaba
fastjson
1.2.58
- test
commons-codec
@@ -52,6 +42,19 @@
1.11
compile
+
+ org.projectlombok
+ lombok
+ 1.18.6
+ provided
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
diff --git a/sop-test/src/main/java/com/gitee/sop/App.java b/sop-test/src/main/java/com/gitee/sop/App.java
deleted file mode 100644
index 5712fbcd..00000000
--- a/sop-test/src/main/java/com/gitee/sop/App.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.gitee.sop;
-
-/**
- * Hello world!
- *
- */
-public class App
-{
- public static void main( String[] args )
- {
- System.out.println( "Hello World!" );
- }
-}
diff --git a/sop-test/src/main/java/com/gitee/sop/test/HttpTool.java b/sop-test/src/main/java/com/gitee/sop/test/HttpTool.java
new file mode 100644
index 00000000..c7164566
--- /dev/null
+++ b/sop-test/src/main/java/com/gitee/sop/test/HttpTool.java
@@ -0,0 +1,381 @@
+package com.gitee.sop.test;
+
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import okhttp3.Cookie;
+import okhttp3.CookieJar;
+import okhttp3.FormBody;
+import okhttp3.HttpUrl;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import okhttp3.Response;
+import org.apache.commons.codec.digest.DigestUtils;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Serializable;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * http请求工具,基于OKHTTP3
+ * @author tanghc
+ */
+public class HttpTool {
+ private static final MediaType MEDIA_TYPE_JSON = MediaType.parse("application/json; charset=utf-8");
+
+ private Map> cookieStore = new HashMap>();
+
+ private OkHttpClient httpClient;
+
+ public HttpTool() {
+ this(new HttpToolConfig());
+ }
+
+ public HttpTool(HttpToolConfig httpToolConfig) {
+ this.initHttpClient(httpToolConfig);
+ }
+
+ protected void initHttpClient(HttpToolConfig httpToolConfig) {
+ httpClient = new OkHttpClient.Builder()
+ .connectTimeout(httpToolConfig.connectTimeoutSeconds, TimeUnit.SECONDS) // 设置链接超时时间,默认10秒
+ .readTimeout(httpToolConfig.readTimeoutSeconds, TimeUnit.SECONDS)
+ .writeTimeout(httpToolConfig.writeTimeoutSeconds, TimeUnit.SECONDS)
+ .cookieJar(new CookieJar() {
+ public void saveFromResponse(HttpUrl httpUrl, List list) {
+ cookieStore.put(httpUrl.host(), list);
+ }
+
+ public List loadForRequest(HttpUrl httpUrl) {
+ List cookies = cookieStore.get(httpUrl.host());
+ return cookies != null ? cookies : new ArrayList();
+ }
+ }).build();
+ }
+
+ @Data
+ public static class HttpToolConfig {
+ /**
+ * 请求超时时间
+ */
+ private int connectTimeoutSeconds = 10;
+ /**
+ * http读取超时时间
+ */
+ private int readTimeoutSeconds = 10;
+ /**
+ * http写超时时间
+ */
+ private int writeTimeoutSeconds = 10;
+ }
+
+ /**
+ * get请求
+ *
+ * @param url
+ * @param header
+ * @return
+ * @throws IOException
+ */
+ public String get(String url, Map header) throws IOException {
+ Request.Builder builder = new Request.Builder().url(url).get();
+ // 添加header
+ addHeader(builder, header);
+
+ Request request = builder.build();
+ Response response = httpClient.newCall(request).execute();
+ return response.body().string();
+ }
+
+ /**
+ * 提交表单
+ *
+ * @param url url
+ * @param form 参数
+ * @param header header
+ * @param method 请求方式,post,get等
+ * @return
+ * @throws IOException
+ */
+ public String request(String url, Map form, Map header, HTTPMethod method) throws IOException {
+ Request.Builder requestBuilder = buildRequestBuilder(url, form, method.value());
+ // 添加header
+ addHeader(requestBuilder, header);
+
+ Request request = requestBuilder.build();
+ Response response = httpClient
+ .newCall(request)
+ .execute();
+ try {
+ return response.body().string();
+ } finally {
+ response.close();
+ }
+ }
+
+ /**
+ * 请求json数据,contentType=application/json
+ * @param url 请求路径
+ * @param json json数据
+ * @param header header
+ * @return 返回响应结果
+ * @throws IOException
+ */
+ public String requestJson(String url, String json, Map header) throws IOException {
+ RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json);
+ Request.Builder requestBuilder = new Request.Builder()
+ .url(url)
+ .post(body);
+ // 添加header
+ addHeader(requestBuilder, header);
+
+ Request request = requestBuilder.build();
+ Response response = httpClient
+ .newCall(request)
+ .execute();
+ try {
+ return response.body().string();
+ } finally {
+ response.close();
+ }
+ }
+
+ public static Request.Builder buildRequestBuilder(String url, Map form, String method) {
+ switch (method) {
+ case "get":
+ return new Request.Builder()
+ .url(buildHttpUrl(url, form))
+ .get();
+ case "head":
+ return new Request.Builder()
+ .url(buildHttpUrl(url, form))
+ .head();
+ case "put":
+ return new Request.Builder()
+ .url(url)
+ .put(buildFormBody(form));
+ case "delete":
+ return new Request.Builder()
+ .url(url)
+ .delete(buildFormBody(form));
+ default:
+ return new Request.Builder()
+ .url(url)
+ .post(buildFormBody(form));
+ }
+ }
+
+ public static HttpUrl buildHttpUrl(String url, Map form) {
+ HttpUrl.Builder urlBuilder = HttpUrl.parse(url).newBuilder();
+ for (Map.Entry entry : form.entrySet()) {
+ urlBuilder.addQueryParameter(entry.getKey(), entry.getValue());
+ }
+ return urlBuilder.build();
+ }
+
+ public static FormBody buildFormBody(Map form) {
+ FormBody.Builder paramBuilder = new FormBody.Builder(StandardCharsets.UTF_8);
+ for (Map.Entry entry : form.entrySet()) {
+ paramBuilder.add(entry.getKey(), entry.getValue());
+ }
+ return paramBuilder.build();
+ }
+
+ /**
+ * 提交表单,并且上传文件
+ *
+ * @param url
+ * @param form
+ * @param header
+ * @param files
+ * @return
+ * @throws IOException
+ */
+ public String requestFile(String url, Map form, Map header, List files)
+ throws IOException {
+ // 创建MultipartBody.Builder,用于添加请求的数据
+ MultipartBody.Builder bodyBuilder = new MultipartBody.Builder();
+ bodyBuilder.setType(MultipartBody.FORM);
+
+ for (UploadFile uploadFile : files) {
+ bodyBuilder.addFormDataPart(uploadFile.getName(), // 请求的名字
+ uploadFile.getFileName(), // 文件的文字,服务器端用来解析的
+ RequestBody.create(null, uploadFile.getFileData()) // 创建RequestBody,把上传的文件放入
+ );
+ }
+
+ Set> entrySet = form.entrySet();
+ for (Map.Entry entry : entrySet) {
+ bodyBuilder.addFormDataPart(entry.getKey(), entry.getValue());
+ }
+
+ RequestBody requestBody = bodyBuilder.build();
+
+ Request.Builder builder = new Request.Builder().url(url).post(requestBody);
+
+ // 添加header
+ addHeader(builder, header);
+
+ Request request = builder.build();
+ Response response = httpClient.newCall(request).execute();
+ try {
+ return response.body().string();
+ } finally {
+ response.close();
+ }
+ }
+
+ private void addHeader(Request.Builder builder, Map header) {
+ if (header != null) {
+ Set> entrySet = header.entrySet();
+ for (Map.Entry entry : entrySet) {
+ builder.addHeader(entry.getKey(), String.valueOf(entry.getValue()));
+ }
+ }
+ }
+
+ public void setCookieStore(Map> cookieStore) {
+ this.cookieStore = cookieStore;
+ }
+
+ public void setHttpClient(OkHttpClient httpClient) {
+ this.httpClient = httpClient;
+ }
+
+ public enum HTTPMethod {
+ GET,
+ POST,
+ PUT,
+ HEAD,
+ DELETE;
+
+ private HTTPMethod() {
+ }
+
+ public String value() {
+ return this.name();
+ }
+
+ public static HTTPMethod fromValue(String v) {
+ return valueOf(v);
+ }
+ }
+
+ /**
+ * 文件上传类
+ * @author tanghc
+ */
+ @Getter
+ @Setter
+ public static class UploadFile implements Serializable {
+ private static final long serialVersionUID = -1100614660944996398L;
+
+ /**
+ * @param name 表单名称,不能重复
+ * @param file 文件
+ * @throws IOException
+ */
+ public UploadFile(String name, File file) throws IOException {
+ this(name, file.getName(), FileUtil.toBytes(file));
+ }
+
+ /**
+ * @param name 表单名称,不能重复
+ * @param fileName 文件名
+ * @param input 文件流
+ * @throws IOException
+ */
+ public UploadFile(String name, String fileName, InputStream input) throws IOException {
+ this(name, fileName, FileUtil.toBytes(input));
+ }
+
+ /**
+ * @param name 表单名称,不能重复
+ * @param fileName 文件名
+ * @param fileData 文件数据
+ */
+ public UploadFile(String name, String fileName, byte[] fileData) {
+ super();
+ this.name = name;
+ this.fileName = fileName;
+ this.fileData = fileData;
+ this.md5 = DigestUtils.md5Hex(fileData);
+ }
+
+ private String name;
+ private String fileName;
+ private byte[] fileData;
+ private String md5;
+
+ }
+
+ public static class FileUtil {
+
+ /**
+ * The default buffer size to use.
+ */
+ private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;
+ private static final int EOF = -1;
+
+ /**
+ * 将文件流转换成byte[]
+ * @param input
+ * @return
+ * @throws IOException
+ */
+ public static byte[] toBytes(InputStream input) throws IOException {
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ int n = 0;
+ byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
+
+ while (EOF != (n = input.read(buffer))) {
+ output.write(buffer, 0, n);
+ }
+ return output.toByteArray();
+ }
+
+ /**
+ * 将文件转换成数据流
+ * @param file 文件
+ * @return 返回数据流
+ * @throws IOException
+ */
+ public static byte[] toBytes(File file) throws IOException {
+ if (file.exists()) {
+ if (file.isDirectory()) {
+ throw new IOException("File '" + file + "' exists but is a directory");
+ }
+ if (file.canRead() == false) {
+ throw new IOException("File '" + file + "' cannot be read");
+ }
+ } else {
+ throw new FileNotFoundException("File '" + file + "' does not exist");
+ }
+ InputStream input = null;
+ try {
+ input = new FileInputStream(file);
+ return toBytes(input);
+ } finally {
+ try {
+ if (input != null) {
+ input.close();
+ }
+ } catch (IOException ioe) {
+ }
+ }
+ }
+ }
+}
diff --git a/sop-test/src/main/java/com/gitee/sop/alipay/AlipayApiException.java b/sop-test/src/main/java/com/gitee/sop/test/alipay/AlipayApiException.java
similarity index 96%
rename from sop-test/src/main/java/com/gitee/sop/alipay/AlipayApiException.java
rename to sop-test/src/main/java/com/gitee/sop/test/alipay/AlipayApiException.java
index 18aa9ea8..adafd989 100644
--- a/sop-test/src/main/java/com/gitee/sop/alipay/AlipayApiException.java
+++ b/sop-test/src/main/java/com/gitee/sop/test/alipay/AlipayApiException.java
@@ -2,7 +2,7 @@
* Alipay.com Inc.
* Copyright (c) 2004-2012 All Rights Reserved.
*/
-package com.gitee.sop.alipay;
+package com.gitee.sop.test.alipay;
/**
diff --git a/sop-test/src/main/java/com/gitee/sop/alipay/AlipayConstants.java b/sop-test/src/main/java/com/gitee/sop/test/alipay/AlipayConstants.java
similarity index 98%
rename from sop-test/src/main/java/com/gitee/sop/alipay/AlipayConstants.java
rename to sop-test/src/main/java/com/gitee/sop/test/alipay/AlipayConstants.java
index 276a3022..afa209eb 100644
--- a/sop-test/src/main/java/com/gitee/sop/alipay/AlipayConstants.java
+++ b/sop-test/src/main/java/com/gitee/sop/test/alipay/AlipayConstants.java
@@ -2,7 +2,7 @@
* Alipay.com Inc.
* Copyright (c) 2004-2012 All Rights Reserved.
*/
-package com.gitee.sop.alipay;
+package com.gitee.sop.test.alipay;
/**
*
diff --git a/sop-test/src/main/java/com/gitee/sop/alipay/AlipaySignature.java b/sop-test/src/main/java/com/gitee/sop/test/alipay/AlipaySignature.java
similarity index 99%
rename from sop-test/src/main/java/com/gitee/sop/alipay/AlipaySignature.java
rename to sop-test/src/main/java/com/gitee/sop/test/alipay/AlipaySignature.java
index 1eef3163..2836f113 100644
--- a/sop-test/src/main/java/com/gitee/sop/alipay/AlipaySignature.java
+++ b/sop-test/src/main/java/com/gitee/sop/test/alipay/AlipaySignature.java
@@ -2,7 +2,7 @@
* Alipay.com Inc.
* Copyright (c) 2004-2012 All Rights Reserved.
*/
-package com.gitee.sop.alipay;
+package com.gitee.sop.test.alipay;
import org.apache.commons.codec.binary.Base64;
diff --git a/sop-test/src/main/java/com/gitee/sop/alipay/StreamUtil.java b/sop-test/src/main/java/com/gitee/sop/test/alipay/StreamUtil.java
similarity index 99%
rename from sop-test/src/main/java/com/gitee/sop/alipay/StreamUtil.java
rename to sop-test/src/main/java/com/gitee/sop/test/alipay/StreamUtil.java
index c7bbff96..e32ec10d 100644
--- a/sop-test/src/main/java/com/gitee/sop/alipay/StreamUtil.java
+++ b/sop-test/src/main/java/com/gitee/sop/test/alipay/StreamUtil.java
@@ -2,7 +2,7 @@
* Alipay.com Inc.
* Copyright (c) 2004-2012 All Rights Reserved.
*/
-package com.gitee.sop.alipay;
+package com.gitee.sop.test.alipay;
import java.io.IOException;
import java.io.InputStream;
diff --git a/sop-test/src/main/java/com/gitee/sop/alipay/StringUtils.java b/sop-test/src/main/java/com/gitee/sop/test/alipay/StringUtils.java
similarity index 99%
rename from sop-test/src/main/java/com/gitee/sop/alipay/StringUtils.java
rename to sop-test/src/main/java/com/gitee/sop/test/alipay/StringUtils.java
index 6dfa14da..2f6b7f70 100644
--- a/sop-test/src/main/java/com/gitee/sop/alipay/StringUtils.java
+++ b/sop-test/src/main/java/com/gitee/sop/test/alipay/StringUtils.java
@@ -1,4 +1,4 @@
-package com.gitee.sop.alipay;
+package com.gitee.sop.test.alipay;
/**
* 字符串工具类。
diff --git a/sop-test/src/main/java/com/gitee/sop/taobao/Constants.java b/sop-test/src/main/java/com/gitee/sop/test/taobao/Constants.java
similarity index 86%
rename from sop-test/src/main/java/com/gitee/sop/taobao/Constants.java
rename to sop-test/src/main/java/com/gitee/sop/test/taobao/Constants.java
index 222f33b8..e2ac5ccf 100644
--- a/sop-test/src/main/java/com/gitee/sop/taobao/Constants.java
+++ b/sop-test/src/main/java/com/gitee/sop/test/taobao/Constants.java
@@ -1,4 +1,4 @@
-package com.gitee.sop.taobao;
+package com.gitee.sop.test.taobao;
/**
* @author tanghc
diff --git a/sop-test/src/main/java/com/gitee/sop/taobao/TaobaoSignature.java b/sop-test/src/main/java/com/gitee/sop/test/taobao/TaobaoSignature.java
similarity index 97%
rename from sop-test/src/main/java/com/gitee/sop/taobao/TaobaoSignature.java
rename to sop-test/src/main/java/com/gitee/sop/test/taobao/TaobaoSignature.java
index 2f3719be..8be4ef4e 100644
--- a/sop-test/src/main/java/com/gitee/sop/taobao/TaobaoSignature.java
+++ b/sop-test/src/main/java/com/gitee/sop/test/taobao/TaobaoSignature.java
@@ -1,6 +1,6 @@
-package com.gitee.sop.taobao;
+package com.gitee.sop.test.taobao;
-import com.gitee.sop.alipay.StringUtils;
+import com.gitee.sop.test.alipay.StringUtils;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
diff --git a/sop-test/src/test/java/com/gitee/sop/TestBase.java b/sop-test/src/test/java/com/gitee/sop/TestBase.java
deleted file mode 100644
index 9b6201cf..00000000
--- a/sop-test/src/test/java/com/gitee/sop/TestBase.java
+++ /dev/null
@@ -1,145 +0,0 @@
-package com.gitee.sop;
-
-import junit.framework.TestCase;
-import org.apache.commons.io.IOUtils;
-import org.apache.http.NameValuePair;
-import org.apache.http.client.entity.UrlEncodedFormEntity;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.message.BasicHeader;
-import org.apache.http.message.BasicNameValuePair;
-import org.apache.http.util.EntityUtils;
-
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-/**
- * @author tanghc
- */
-public class TestBase extends TestCase {
-
- /**
- * 发送POST请求
- * @param url
- * @return JSON或者字符串
- * @throws Exception
- */
- public static String post(String url, Map params) {
- CloseableHttpClient client = null;
- CloseableHttpResponse response = null;
- try{
- /**
- * 创建一个httpclient对象
- */
- client = HttpClients.createDefault();
- /**
- * 创建一个post对象
- */
- HttpPost post = new HttpPost(url);
- List nameValuePairs = params.entrySet().stream().map(entry -> {
- return new BasicNameValuePair(entry.getKey(), String.valueOf(entry.getValue()));
- }).collect(Collectors.toList());
- /**
- * 包装成一个Entity对象
- */
- UrlEncodedFormEntity entity = new UrlEncodedFormEntity(nameValuePairs, "UTF-8");
- /**
- * 设置请求的内容
- */
- post.setEntity(entity);
- /**
- * 设置请求的报文头部的编码
- */
- post.setHeader(new BasicHeader("Content-Type", "application/x-www-form-urlencoded"));
- /**
- * 执行post请求
- */
- response = client.execute(post);
- /**
- * 通过EntityUitls获取返回内容
- */
-// Header[] allHeaders = response.getAllHeaders();
-// if (allHeaders != null && allHeaders.length > 0) {
-// System.out.println("----------- headers -----------");
-// for (Header allHeader : allHeaders) {
-// System.out.println(allHeader);
-// }
-// }
- return EntityUtils.toString(response.getEntity(),"UTF-8");
- }catch (Exception e){
- e.printStackTrace();
- }finally {
- IOUtils.closeQuietly(client);
- IOUtils.closeQuietly(response);
- }
- return null;
- }
-
- /**
- * 发送get请求
- * @param url
- * @return JSON或者字符串
- * @throws Exception
- */
- public static String get(String url, Map params) {
- CloseableHttpClient client = null;
- CloseableHttpResponse response = null;
- try{
- /**
- * 创建一个httpclient对象
- */
- client = HttpClients.createDefault();
-
- List nameValuePairs = params.entrySet()
- .stream()
- .map(entry -> new BasicNameValuePair(entry.getKey(), String.valueOf(entry.getValue())))
- .collect(Collectors.toList());
- /**
- * 包装成一个Entity对象
- */
- UrlEncodedFormEntity entity = new UrlEncodedFormEntity(nameValuePairs, "UTF-8");
- //参数转换为字符串
- String paramsStr = EntityUtils.toString(entity);
- url = url + "?" + paramsStr;
- /**
- * 创建一个post对象
- */
- HttpGet get = new HttpGet(url);
-
- /**
- * 执行post请求
- */
- response = client.execute(get);
- /**
- * 通过EntityUitls获取返回内容
- */
-// Header[] allHeaders = response.getAllHeaders();
-// if (allHeaders != null && allHeaders.length > 0) {
-// System.out.println("----------- headers -----------");
-// for (Header allHeader : allHeaders) {
-// System.out.println(allHeader);
-// }
-// }
- return EntityUtils.toString(response.getEntity(),"UTF-8");
- }catch (Exception e){
- e.printStackTrace();
- }finally {
- IOUtils.closeQuietly(client);
- IOUtils.closeQuietly(response);
- }
- return null;
- }
-
- protected String buildParamQuery(Map params) {
- StringBuilder sb = new StringBuilder();
- for (Map.Entry entry : params.entrySet()) {
- sb.append("&").append(entry.getKey()).append("=").append(entry.getValue());
- }
- return sb.toString().substring(1);
- }
-
-}
diff --git a/sop-test/src/test/java/com/gitee/sop/AlipayClientPostTest.java b/sop-test/src/test/java/com/gitee/sop/test/AlipayClientPostTest.java
similarity index 98%
rename from sop-test/src/test/java/com/gitee/sop/AlipayClientPostTest.java
rename to sop-test/src/test/java/com/gitee/sop/test/AlipayClientPostTest.java
index 3d0dac32..fda92c02 100644
--- a/sop-test/src/test/java/com/gitee/sop/AlipayClientPostTest.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/AlipayClientPostTest.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
@@ -34,7 +34,7 @@ public class AlipayClientPostTest extends TestBase {
*/
// 这个请求会路由到story服务
@Test
- public void testPost() throws Exception {
+ public void testGet() throws Exception {
// 公共请求参数
Map params = new HashMap();
diff --git a/sop-test/src/test/java/com/gitee/sop/DubboDemoTest.java b/sop-test/src/test/java/com/gitee/sop/test/DubboDemoTest.java
similarity index 97%
rename from sop-test/src/test/java/com/gitee/sop/DubboDemoTest.java
rename to sop-test/src/test/java/com/gitee/sop/test/DubboDemoTest.java
index 63c241d3..4fbfaeed 100644
--- a/sop-test/src/test/java/com/gitee/sop/DubboDemoTest.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/DubboDemoTest.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/EasyopenClientPostTest.java b/sop-test/src/test/java/com/gitee/sop/test/EasyopenClientPostTest.java
similarity index 97%
rename from sop-test/src/test/java/com/gitee/sop/EasyopenClientPostTest.java
rename to sop-test/src/test/java/com/gitee/sop/test/EasyopenClientPostTest.java
index a1445034..d09b4d06 100644
--- a/sop-test/src/test/java/com/gitee/sop/EasyopenClientPostTest.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/EasyopenClientPostTest.java
@@ -1,7 +1,6 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import junit.framework.TestCase;
import org.apache.commons.codec.digest.DigestUtils;
import org.junit.Test;
diff --git a/sop-test/src/test/java/com/gitee/sop/JSR303DemoTest.java b/sop-test/src/test/java/com/gitee/sop/test/JSR303DemoTest.java
similarity index 97%
rename from sop-test/src/test/java/com/gitee/sop/JSR303DemoTest.java
rename to sop-test/src/test/java/com/gitee/sop/test/JSR303DemoTest.java
index 0b5aa3c4..cb3cbfc0 100644
--- a/sop-test/src/test/java/com/gitee/sop/JSR303DemoTest.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/JSR303DemoTest.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest.java b/sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest.java
similarity index 98%
rename from sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest.java
rename to sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest.java
index 8f548fe9..ccc6223d 100644
--- a/sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest2.java b/sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest2.java
similarity index 98%
rename from sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest2.java
rename to sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest2.java
index 20dd8383..357424ae 100644
--- a/sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest2.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest2.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest3.java b/sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest3.java
similarity index 97%
rename from sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest3.java
rename to sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest3.java
index 40afcd9c..dda892f2 100644
--- a/sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest3.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest3.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest4.java b/sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest4.java
similarity index 97%
rename from sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest4.java
rename to sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest4.java
index 076bf620..cbc4a0f4 100644
--- a/sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest4.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest4.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest5.java b/sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest5.java
similarity index 97%
rename from sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest5.java
rename to sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest5.java
index dde4ad12..78bf9b76 100644
--- a/sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest5.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest5.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest6.java b/sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest6.java
similarity index 97%
rename from sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest6.java
rename to sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest6.java
index e77c7b73..f0228801 100644
--- a/sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest6.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/LimitDemoPostTest6.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/LoadBalanceTest.java b/sop-test/src/test/java/com/gitee/sop/test/LoadBalanceTest.java
similarity index 96%
rename from sop-test/src/test/java/com/gitee/sop/LoadBalanceTest.java
rename to sop-test/src/test/java/com/gitee/sop/test/LoadBalanceTest.java
index f9bbaa3b..d82f0bbe 100644
--- a/sop-test/src/test/java/com/gitee/sop/LoadBalanceTest.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/LoadBalanceTest.java
@@ -1,8 +1,8 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipayApiException;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipayApiException;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/PermissionDemoPostTest.java b/sop-test/src/test/java/com/gitee/sop/test/PermissionDemoPostTest.java
similarity index 97%
rename from sop-test/src/test/java/com/gitee/sop/PermissionDemoPostTest.java
rename to sop-test/src/test/java/com/gitee/sop/test/PermissionDemoPostTest.java
index 8a55f6d6..f7a479bb 100644
--- a/sop-test/src/test/java/com/gitee/sop/PermissionDemoPostTest.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/PermissionDemoPostTest.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/RestUrlTest.java b/sop-test/src/test/java/com/gitee/sop/test/RestUrlTest.java
similarity index 97%
rename from sop-test/src/test/java/com/gitee/sop/RestUrlTest.java
rename to sop-test/src/test/java/com/gitee/sop/test/RestUrlTest.java
index e04cb6f5..1af4393a 100644
--- a/sop-test/src/test/java/com/gitee/sop/RestUrlTest.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/RestUrlTest.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/SpringCloudGatewayClientPostTest.java b/sop-test/src/test/java/com/gitee/sop/test/SpringCloudGatewayClientPostTest.java
similarity index 98%
rename from sop-test/src/test/java/com/gitee/sop/SpringCloudGatewayClientPostTest.java
rename to sop-test/src/test/java/com/gitee/sop/test/SpringCloudGatewayClientPostTest.java
index 66a2388e..6b213bd6 100644
--- a/sop-test/src/test/java/com/gitee/sop/SpringCloudGatewayClientPostTest.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/SpringCloudGatewayClientPostTest.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/SpringmvcDemoPostTest.java b/sop-test/src/test/java/com/gitee/sop/test/SpringmvcDemoPostTest.java
similarity index 97%
rename from sop-test/src/test/java/com/gitee/sop/SpringmvcDemoPostTest.java
rename to sop-test/src/test/java/com/gitee/sop/test/SpringmvcDemoPostTest.java
index 540216cc..497700f7 100644
--- a/sop-test/src/test/java/com/gitee/sop/SpringmvcDemoPostTest.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/SpringmvcDemoPostTest.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/StoryDemoTest.java b/sop-test/src/test/java/com/gitee/sop/test/StoryDemoTest.java
similarity index 98%
rename from sop-test/src/test/java/com/gitee/sop/StoryDemoTest.java
rename to sop-test/src/test/java/com/gitee/sop/test/StoryDemoTest.java
index 2d5aa766..26536d84 100644
--- a/sop-test/src/test/java/com/gitee/sop/StoryDemoTest.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/StoryDemoTest.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/TaobaoClientPostTest.java b/sop-test/src/test/java/com/gitee/sop/test/TaobaoClientPostTest.java
similarity index 96%
rename from sop-test/src/test/java/com/gitee/sop/TaobaoClientPostTest.java
rename to sop-test/src/test/java/com/gitee/sop/test/TaobaoClientPostTest.java
index 6aed2e60..1cc31c73 100644
--- a/sop-test/src/test/java/com/gitee/sop/TaobaoClientPostTest.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/TaobaoClientPostTest.java
@@ -1,7 +1,6 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
-import com.alibaba.fastjson.JSON;
-import com.gitee.sop.taobao.TaobaoSignature;
+import com.gitee.sop.test.taobao.TaobaoSignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-test/src/test/java/com/gitee/sop/test/TestBase.java b/sop-test/src/test/java/com/gitee/sop/test/TestBase.java
new file mode 100644
index 00000000..fb96518e
--- /dev/null
+++ b/sop-test/src/test/java/com/gitee/sop/test/TestBase.java
@@ -0,0 +1,53 @@
+package com.gitee.sop.test;
+
+import com.alibaba.fastjson.JSON;
+import junit.framework.TestCase;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Map;
+
+/**
+ * @author tanghc
+ */
+public class TestBase extends TestCase {
+
+ static HttpTool httpTool = new HttpTool();
+
+ /**
+ * 发送POST请求
+ *
+ * @param url
+ * @return JSON或者字符串
+ */
+ public static String post(String url, Map params) {
+ try {
+ return httpTool.requestJson(url, JSON.toJSONString(params), Collections.emptyMap());
+ } catch (IOException e) {
+ throw new RuntimeException("网络请求异常", e);
+ }
+ }
+
+ /**
+ * 发送get请求
+ *
+ * @param url
+ * @return JSON或者字符串
+ */
+ public static String get(String url, Map params) {
+ try {
+ return httpTool.request(url, params, Collections.emptyMap(), HttpTool.HTTPMethod.GET);
+ } catch (IOException e) {
+ throw new RuntimeException("网络请求异常", e);
+ }
+ }
+
+ protected static String buildParamQuery(Map params) {
+ StringBuilder sb = new StringBuilder();
+ for (Map.Entry entry : params.entrySet()) {
+ sb.append("&").append(entry.getKey()).append("=").append(entry.getValue());
+ }
+ return sb.toString().substring(1);
+ }
+
+}
diff --git a/sop-test/src/test/java/com/gitee/sop/ThrowExceptionDemoTest.java b/sop-test/src/test/java/com/gitee/sop/test/ThrowExceptionDemoTest.java
similarity index 97%
rename from sop-test/src/test/java/com/gitee/sop/ThrowExceptionDemoTest.java
rename to sop-test/src/test/java/com/gitee/sop/test/ThrowExceptionDemoTest.java
index ba2612e0..1e64cf36 100644
--- a/sop-test/src/test/java/com/gitee/sop/ThrowExceptionDemoTest.java
+++ b/sop-test/src/test/java/com/gitee/sop/test/ThrowExceptionDemoTest.java
@@ -1,7 +1,7 @@
-package com.gitee.sop;
+package com.gitee.sop.test;
import com.alibaba.fastjson.JSON;
-import com.gitee.sop.alipay.AlipaySignature;
+import com.gitee.sop.test.alipay.AlipaySignature;
import org.junit.Test;
import java.text.SimpleDateFormat;
diff --git a/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/bean/HttpTool.java b/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/bean/HttpTool.java
index a0ff4e60..8e0cce0e 100644
--- a/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/bean/HttpTool.java
+++ b/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/bean/HttpTool.java
@@ -1,17 +1,27 @@
package com.gitee.sop.websiteserver.bean;
import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
import okhttp3.Cookie;
import okhttp3.CookieJar;
import okhttp3.FormBody;
import okhttp3.HttpUrl;
+import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
+import org.apache.commons.codec.digest.DigestUtils;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.Serializable;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
@@ -21,9 +31,12 @@ import java.util.Set;
import java.util.concurrent.TimeUnit;
/**
+ * http请求工具,基于OKHTTP3
* @author tanghc
*/
public class HttpTool {
+ private static final MediaType MEDIA_TYPE_JSON = MediaType.parse("application/json; charset=utf-8");
+
private Map> cookieStore = new HashMap>();
private OkHttpClient httpClient;
@@ -97,8 +110,35 @@ public class HttpTool {
* @return
* @throws IOException
*/
- public String request(String url, Map form, Map header, String method) throws IOException {
- Request.Builder requestBuilder = buildRequestBuilder(url, form, method);
+ public String request(String url, Map form, Map header, HTTPMethod method) throws IOException {
+ Request.Builder requestBuilder = buildRequestBuilder(url, form, method.value());
+ // 添加header
+ addHeader(requestBuilder, header);
+
+ Request request = requestBuilder.build();
+ Response response = httpClient
+ .newCall(request)
+ .execute();
+ try {
+ return response.body().string();
+ } finally {
+ response.close();
+ }
+ }
+
+ /**
+ * 请求json数据,contentType=application/json
+ * @param url 请求路径
+ * @param json json数据
+ * @param header header
+ * @return 返回响应结果
+ * @throws IOException
+ */
+ public String requestJson(String url, String json, Map header) throws IOException {
+ RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json);
+ Request.Builder requestBuilder = new Request.Builder()
+ .url(url)
+ .post(body);
// 添加header
addHeader(requestBuilder, header);
@@ -215,4 +255,124 @@ public class HttpTool {
this.httpClient = httpClient;
}
+ public enum HTTPMethod {
+ GET,
+ POST,
+ PUT,
+ HEAD,
+ DELETE;
+
+ public String value() {
+ return this.name();
+ }
+
+ public static HTTPMethod fromValue(String v) {
+ return valueOf(v.toUpperCase());
+ }
+ }
+
+ /**
+ * 文件上传类
+ * @author tanghc
+ */
+ @Getter
+ @Setter
+ public static class UploadFile implements Serializable {
+ private static final long serialVersionUID = -1100614660944996398L;
+
+ /**
+ * @param name 表单名称,不能重复
+ * @param file 文件
+ * @throws IOException
+ */
+ public UploadFile(String name, File file) throws IOException {
+ this(name, file.getName(), FileUtil.toBytes(file));
+ }
+
+ /**
+ * @param name 表单名称,不能重复
+ * @param fileName 文件名
+ * @param input 文件流
+ * @throws IOException
+ */
+ public UploadFile(String name, String fileName, InputStream input) throws IOException {
+ this(name, fileName, FileUtil.toBytes(input));
+ }
+
+ /**
+ * @param name 表单名称,不能重复
+ * @param fileName 文件名
+ * @param fileData 文件数据
+ */
+ public UploadFile(String name, String fileName, byte[] fileData) {
+ super();
+ this.name = name;
+ this.fileName = fileName;
+ this.fileData = fileData;
+ this.md5 = DigestUtils.md5Hex(fileData);
+ }
+
+ private String name;
+ private String fileName;
+ private byte[] fileData;
+ private String md5;
+
+ }
+
+ public static class FileUtil {
+
+ /**
+ * The default buffer size to use.
+ */
+ private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;
+ private static final int EOF = -1;
+
+ /**
+ * 将文件流转换成byte[]
+ * @param input
+ * @return
+ * @throws IOException
+ */
+ public static byte[] toBytes(InputStream input) throws IOException {
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ int n = 0;
+ byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
+
+ while (EOF != (n = input.read(buffer))) {
+ output.write(buffer, 0, n);
+ }
+ return output.toByteArray();
+ }
+
+ /**
+ * 将文件转换成数据流
+ * @param file 文件
+ * @return 返回数据流
+ * @throws IOException
+ */
+ public static byte[] toBytes(File file) throws IOException {
+ if (file.exists()) {
+ if (file.isDirectory()) {
+ throw new IOException("File '" + file + "' exists but is a directory");
+ }
+ if (file.canRead() == false) {
+ throw new IOException("File '" + file + "' cannot be read");
+ }
+ } else {
+ throw new FileNotFoundException("File '" + file + "' does not exist");
+ }
+ InputStream input = null;
+ try {
+ input = new FileInputStream(file);
+ return toBytes(input);
+ } finally {
+ try {
+ if (input != null) {
+ input.close();
+ }
+ } catch (IOException ioe) {
+ }
+ }
+ }
+ }
}
diff --git a/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/bean/UploadFile.java b/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/bean/UploadFile.java
deleted file mode 100644
index 7045bc58..00000000
--- a/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/bean/UploadFile.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.gitee.sop.websiteserver.bean;
-
-
-import com.gitee.sop.websiteserver.util.FileUtil;
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.commons.codec.digest.DigestUtils;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Serializable;
-
-/**
- * 文件上传类
- * @author tanghc
- */
-@Getter
-@Setter
-public class UploadFile implements Serializable {
- private static final long serialVersionUID = -1100614660944996398L;
-
- /**
- * @param name 表单名称,不能重复
- * @param file 文件
- * @throws IOException
- */
- public UploadFile(String name, File file) throws IOException {
- this(name, file.getName(), FileUtil.toBytes(file));
- }
-
- /**
- * @param name 表单名称,不能重复
- * @param fileName 文件名
- * @param input 文件流
- * @throws IOException
- */
- public UploadFile(String name, String fileName, InputStream input) throws IOException {
- this(name, fileName, FileUtil.toBytes(input));
- }
-
- /**
- * @param name 表单名称,不能重复
- * @param fileName 文件名
- * @param fileData 文件数据
- */
- public UploadFile(String name, String fileName, byte[] fileData) {
- super();
- this.name = name;
- this.fileName = fileName;
- this.fileData = fileData;
- this.md5 = DigestUtils.md5Hex(fileData);
- }
-
- private String name;
- private String fileName;
- private byte[] fileData;
- private String md5;
-
-}
diff --git a/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/controller/SandboxController.java b/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/controller/SandboxController.java
index cd89a8bc..5bfd6aa0 100644
--- a/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/controller/SandboxController.java
+++ b/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/controller/SandboxController.java
@@ -1,7 +1,7 @@
package com.gitee.sop.websiteserver.controller;
import com.gitee.sop.websiteserver.bean.HttpTool;
-import com.gitee.sop.websiteserver.bean.UploadFile;
+import com.gitee.sop.websiteserver.bean.HttpTool.*;
import com.gitee.sop.websiteserver.sign.AlipayApiException;
import com.gitee.sop.websiteserver.sign.AlipaySignature;
import com.gitee.sop.websiteserver.util.UploadUtil;
@@ -37,6 +37,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
+
/**
* 沙箱环境代理类
* @author tanghc
@@ -113,7 +114,7 @@ public class SandboxController {
if (!CollectionUtils.isEmpty(files)) {
responseData = httpTool.requestFile(url, params, Collections.emptyMap(), files);
} else {
- responseData = httpTool.request(url, params, Collections.emptyMap(), httpMethod);
+ responseData = httpTool.request(url, params, Collections.emptyMap(), HTTPMethod.fromValue(httpMethod));
}
result.apiResult = responseData;
return result;
diff --git a/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/util/FileUtil.java b/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/util/FileUtil.java
deleted file mode 100644
index ce4ea33e..00000000
--- a/sop-website/website-server/src/main/java/com/gitee/sop/websiteserver/util/FileUtil.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.gitee.sop.websiteserver.util;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-
-public class FileUtil {
-
- /**
- * The default buffer size to use.
- */
- private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;
- private static final int EOF = -1;
-
- /**
- * 将文件流转换成byte[]
- * @param input
- * @return
- * @throws IOException
- */
- public static byte[] toBytes(InputStream input) throws IOException {
- ByteArrayOutputStream output = new ByteArrayOutputStream();
- int n = 0;
- byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
-
- while (EOF != (n = input.read(buffer))) {
- output.write(buffer, 0, n);
- }
- return output.toByteArray();
- }
-
- /**
- * 将文件转换成数据流
- * @param file 文件
- * @return 返回数据流
- * @throws IOException
- */
- public static byte[] toBytes(File file) throws IOException {
- if (file.exists()) {
- if (file.isDirectory()) {
- throw new IOException("File '" + file + "' exists but is a directory");
- }
- if (file.canRead() == false) {
- throw new IOException("File '" + file + "' cannot be read");
- }
- } else {
- throw new FileNotFoundException("File '" + file + "' does not exist");
- }
- InputStream input = null;
- try {
- input = new FileInputStream(file);
- return toBytes(input);
- } finally {
- try {
- if (input != null) {
- input.close();
- }
- } catch (IOException ioe) {
- }
- }
- }
-}