此脚本使用testng框架,需要提前安装。目前暂时还没有get请求脚本。
package com.ssl; /** * @Author: * @Date: 2021/5/24 * @Version 1.0 */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; public class HttpRequest { /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 * https://blog.csdn.net/s13554341560b/article/details/78872902?utm_medium=distribute.pc_relevant_download.none-task-blog-2~default~BlogCommendFromBaidu~default-5.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-2~default~BlogCommendFromBaidu~default-5.nonecas */ public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { // 创建SSLContext对象,并使用我们指定的信任管理器初始化 TrustManager[] tm = { new MyX509TrustManager() }; SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, tm, new java.security.SecureRandom()); // 从上述SSLContext对象中得到SSLSocketFactory对象 SSLSocketFactory ssf = sslContext.getSocketFactory(); // 打开和URL之间的连接 URL realUrl = new URL(url); HttpsURLConnection conn = (HttpsURLConnection) realUrl.openConnection(); conn.setSSLSocketFactory(ssf); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("content-Type", "application/json"); conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); //Authorization相当于cookie,如果你的系统有cookie,就改未cookie。 conn.setRequestProperty("Authorization","BearereyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJjbGgiLCJ1c2VyTmFtZSI6ImNsaCIsIm5pY2tuYW1lIjoi6ZmI56uL5rWpIiwidXNlcklkIjoiNDUwZTM5Y2U1YjA0NGYyNDhjNjJjNGEwOTkxYTg1YzYiLCJ0ZW5hbnRJZCI6ImU5MTUzZjdhZDE1YjRjNDdhYWU0ZjY2OTY2M2ExM2M0IiwidGVuYW"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } System.out.println("-----result-----"+result); } 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; } } ---------------------------------------
package com.ssl; /** * @Author: * @Date: 2021/5/24 * @Version 1.0 */ import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.X509TrustManager; public class MyX509TrustManager implements X509TrustManager{ @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public X509Certificate[] getAcceptedIssuers() { return null; } }
----------------------------------
//脚本示例 package com.ssl; import com.alibaba.fastjson.JSON; import org.testng.Assert; import org.testng.annotations.Test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static com.sun.tools.doclint.Entity.and; /** * @Author: * @Date: 2021/5/25 * @Version 1.0 */ //供应商注册列表查询 public class SupplierInviteDynamicQueryPage { //邀请导入模板查询 private static String url = "https://demo.qeweb.com/api/supplier/mdm/supplierInvite/dynamicQueryPage"; private static JSON JSONUtils; //public static void main(String[] args) throws Exception { @Test public void test(){ Map<String,Object> param = new HashMap<String,Object>(); //封装请求数据 //param.put("Authorization","BearereyJhbGciOiJIUzUxMiNzU2LCJleHAiOjE2MjI3ODY3NTZ9.pFpxAvoy2YjtGqlDmqTL0Y3cPHv9UqFLNWIfQusXmYSfofi7pQ0VlArpvczY0t_1w82yOPEVTL_gt2zoykQ1mA"); //param.put("service", "service"); //param.put("api", "api"); //param.put("method", "method"); param.put("condition", "and"); //数组 param.put("defaultRules",new Object[]{}); param.put("order", ""); param.put("pageNo", 1); param.put("pageSize", 50); param.put("rules", new Object[]{}); param.put("sendInvite", 1); param.put("sort", ""); param.put("status", 1); String message = JSONUtils.toJSONString(param); HttpRequest.sendPost(url, message); //Assert.assertEquals(message,"200"); //Assert.assertTrue(message.contains("data")); //Assert.assertTrue(JSON.parseObject(response.string()).getBoolean("success")); //} }}
-------------------------
//示例脚本
package com.ssl; /** * @Author: * @Date: 2021/5/24 * @Version 1.0 */ import java.util.HashMap; import java.util.Map; import org.testng.annotations.Test; //import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.fastjson.JSON; import org.junit.Assert; public class CommonFileQuery { //邀请导入模板查询 private static String url = "https://demo.qeweb.com/api/system/common/commonFile/query"; private static JSON JSONUtils; @Test //public static void main(String[] args) throws Exception { public void test(){ Map<String, Object> param = new HashMap<String, Object>(); //封装请求数据 //param.put("Authorization","BearereyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ4dGYiLCJ1c2VyTmFtZSI6Inh0ZiIsIm5pY2tuYW1lIjoi54aK6IW-6aOeIiwidXNlcklkIjoiYmJiNDg5YjA0MjI5NDIxYjgwOTg4MGFjNDIzNmM4NmQiLCJ0ZW5hbnRJZCI6IMjI3ODY3NTZ9.pFpxAvoy2YjtGqlDmqTL0Y3cPHv9UqFLNWIfQusXmYSfofi7pQ0VlArpvczY0t_1w82yOPEVTL_gt2zoykQ1mA"); //param.put("service", "service"); //param.put("api", "api"); //param.put("method", "method"); param.put("code", "supplierImportTemplate"); param.put("pageNo", "1"); param.put("pageSize", "1000"); String message = JSONUtils.toJSONString(param); HttpRequest.sendPost(url, message); Assert.assertTrue(message, true); System.out.println(message); } }