|
@@ -1,47 +1,61 @@
|
|
|
-package com.zskk.control;
|
|
|
+package com.zskk.control;//package com.java;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import org.apache.commons.codec.digest.DigestUtils;
|
|
|
|
|
|
import java.io.*;
|
|
|
import java.net.URLEncoder;
|
|
|
import java.util.*;
|
|
|
|
|
|
-import static com.alibaba.fastjson.JSON.toJSONString;
|
|
|
-
|
|
|
/**
|
|
|
* 用于模拟HTTP请求中GET/POST方式
|
|
|
- * @author java
|
|
|
*
|
|
|
+ * @author java
|
|
|
*/
|
|
|
public class HttpTest {
|
|
|
|
|
|
- public final static String url = "https://pacs.yunyikang.cn/pacs/zskk/writePatientReport";
|
|
|
+ public final static String url = "http://test99.yunyikang.cn/pacs/zskk/writePatientReport";
|
|
|
|
|
|
+ /**
|
|
|
+ * 主函数,测试请求
|
|
|
+ *
|
|
|
+ * @param args
|
|
|
+ */
|
|
|
+ public static void main(String[] args) {
|
|
|
+ Map<String, String> data = new HashMap<>(22);
|
|
|
+ getData(data);
|
|
|
+ Map<String, String> params = new HashMap<>(10);
|
|
|
+ params.put("timestamp", String.valueOf(getSecondTimestamp(new Date())));
|
|
|
+ params.put("signature", getSign(data, "YgpxjVeIx0yoK6Atz413IAj7hU9dygH4"));
|
|
|
+ params.put("data", JSON.toJSONString(data));
|
|
|
+ System.out.println(params);
|
|
|
+ String result = sendPost(url, params);
|
|
|
+ System.out.println("===============");
|
|
|
+ System.out.println(result);
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 发送GET请求
|
|
|
*
|
|
|
- * @param url
|
|
|
- * 目的地址
|
|
|
- * @param parameters
|
|
|
- * 请求参数,Map类型。
|
|
|
+ * @param url 目的地址
|
|
|
+ * @param parameters 请求参数,Map类型。
|
|
|
* @return 远程响应结果
|
|
|
*/
|
|
|
public static String sendGet(String url, Map<String, String> parameters) {
|
|
|
- String result="";
|
|
|
+ String result = "";
|
|
|
BufferedReader in = null;// 读取响应输入流
|
|
|
StringBuffer sb = new StringBuffer();// 存储参数
|
|
|
String params = "";// 编码之后的参数
|
|
|
try {
|
|
|
// 编码请求参数
|
|
|
- if(parameters.size()==1){
|
|
|
- for(String name:parameters.keySet()){
|
|
|
+ if (parameters.size() == 1) {
|
|
|
+ for (String name : parameters.keySet()) {
|
|
|
sb.append(name).append("=").append(
|
|
|
java.net.URLEncoder.encode(parameters.get(name),
|
|
|
"UTF-8"));
|
|
|
}
|
|
|
- params=sb.toString();
|
|
|
- }else{
|
|
|
+ params = sb.toString();
|
|
|
+ } else {
|
|
|
for (String name : parameters.keySet()) {
|
|
|
sb.append(name).append("=").append(
|
|
|
java.net.URLEncoder.encode(parameters.get(name),
|
|
@@ -80,7 +94,7 @@ public class HttpTest {
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
- }finally{
|
|
|
+ } finally {
|
|
|
try {
|
|
|
if (in != null) {
|
|
|
in.close();
|
|
@@ -89,16 +103,14 @@ public class HttpTest {
|
|
|
ex.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
- return result ;
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 发送POST请求
|
|
|
*
|
|
|
- * @param url
|
|
|
- * 目的地址
|
|
|
- * @param parameters
|
|
|
- * 请求参数,Map类型。
|
|
|
+ * @param url 目的地址
|
|
|
+ * @param parameters 请求参数,Map类型。
|
|
|
* @return 远程响应结果
|
|
|
*/
|
|
|
public static String sendPost(String url, Map<String, String> parameters) {
|
|
@@ -169,25 +181,6 @@ public class HttpTest {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 主函数,测试请求
|
|
|
- *
|
|
|
- * @param args
|
|
|
- */
|
|
|
- public static void main(String[] args) {
|
|
|
- Map<String, String> data = new HashMap<>(22);
|
|
|
- getData(data);
|
|
|
- Map<String, String> params = new HashMap<>(10);
|
|
|
- params.put("timestamp", String.valueOf(getSecondTimestamp(new Date())));
|
|
|
- params.put("signature", getSign(data, "YgpxjVeIx0yoK6Atz413IAj7hU9dygH4"));
|
|
|
- params.put("data", toJSONString(data));
|
|
|
- System.out.println(toJSONString(params));
|
|
|
- String result =sendPost(url, params);
|
|
|
- System.out.println(result);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
|
|
|
public static void getData(Map<String, String> data) {
|
|
|
data.put("hospital_id", "12");
|
|
@@ -213,20 +206,12 @@ public class HttpTest {
|
|
|
data.put("confirm_doctor_name", "的撒旦2");
|
|
|
}
|
|
|
|
|
|
- public static String getSign(Map<String, String> param, String key) {
|
|
|
- return DigestUtils.md5Hex(mapSortedByKey(param) + "." + key);
|
|
|
+ public static String getSign(Map<String, String> param, String key) {
|
|
|
+ return DigestUtils.md5Hex(Ksort(param) + key);
|
|
|
}
|
|
|
- /*/**
|
|
|
- *
|
|
|
- * 功能描述:
|
|
|
- *
|
|
|
- * @param: [map] key = YgpxjVeIx0yoK6Atz413IAj7hU9dygH4
|
|
|
- * @return: void
|
|
|
- * @auther: xjh
|
|
|
- * @date: 2019/11/29 17:49
|
|
|
- */
|
|
|
- public static String Ksort(Map<String, String> map) {
|
|
|
|
|
|
+
|
|
|
+ public static String Ksort(Map<String, String> map) {
|
|
|
String sb = "";
|
|
|
String[] key = new String[map.size()];
|
|
|
int index = 0;
|
|
@@ -237,35 +222,16 @@ public class HttpTest {
|
|
|
Arrays.sort(key);
|
|
|
for (String s : key) {
|
|
|
sb += s + "=" + map.get(s) + "&";
|
|
|
- sb = sb.substring(0, sb.length() - 1);
|
|
|
- // 将得到的字符串进行处理得到目标格式的字符串
|
|
|
- try {
|
|
|
- sb = URLEncoder.encode(sb, "UTF-8");
|
|
|
- } catch (UnsupportedEncodingException e) {
|
|
|
- // TODO Auto-generated catch block
|
|
|
- e.printStackTrace();
|
|
|
- }// 使用常见的UTF-8编码
|
|
|
- sb = sb.replace("%3D", "=").replace("%26", "&");
|
|
|
- // return sb.toString();
|
|
|
- // System.out.println(sb);
|
|
|
}
|
|
|
- return sb.toString();
|
|
|
+ sb = sb.substring(0, sb.length() - 1);
|
|
|
+ try {
|
|
|
+ sb = URLEncoder.encode(sb, "UTF-8");
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }// 使用常见的UTF-8编码
|
|
|
+ return sb.replace("%3D", "=").replace("%26", "&");
|
|
|
}
|
|
|
|
|
|
- public static String mapSortedByKey(Map<String, String> param) {
|
|
|
- StringBuilder stringBuilder = new StringBuilder();
|
|
|
- ArrayList<String> keyList = new ArrayList<>(param.keySet());
|
|
|
- Collections.sort(keyList);
|
|
|
- for (int i = 0; i < keyList.size(); i++) {
|
|
|
- String key = keyList.get(i);
|
|
|
- if (i == keyList.size() - 1) {
|
|
|
- stringBuilder.append(key).append("=").append(param.getOrDefault(key, ""));
|
|
|
- } else {
|
|
|
- stringBuilder.append(key).append("=").append(param.getOrDefault(key, "")).append("&");
|
|
|
- }
|
|
|
- }
|
|
|
- return stringBuilder.toString();
|
|
|
- }
|
|
|
|
|
|
public static int getSecondTimestamp(Date date) {
|
|
|
if (null == date) {
|