当前位置: 首页 > news >正文

服装网站建设环境分析湘潭做网站 要到磐石网络

服装网站建设环境分析,湘潭做网站 要到磐石网络,建筑案例分析网站,家装公司起名文章目录一、客户端实现1. HttpsApiUtils 测试方法2. 返回报文监控二、服务端实现2.1. 配置SSL 实现HTTPS2.2. 添加post接口方法2.3. 服务端监控三、进阶测试3.1. 客户端发送对象3.2. 服务端监控3.3. 客户端解析返回报文一、客户端实现 声明#xff1a;不用引入任何第三方jar… 文章目录一、客户端实现1. HttpsApiUtils 测试方法2. 返回报文监控二、服务端实现2.1. 配置SSL 实现HTTPS2.2. 添加post接口方法2.3. 服务端监控三、进阶测试3.1. 客户端发送对象3.2. 服务端监控3.3. 客户端解析返回报文一、客户端实现 声明不用引入任何第三方jar包只需要安装JDK即可目前版本适配1.6及以上版本 1. HttpsApiUtils 测试方法 package com.gblfy.util;import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate;import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager;/*** 实现HTTPS协议POST请求JSON报文** author gblfy* date 2020-06-19*/public class HttpsApiUtil {private static class TrustAnyTrustManager implements X509TrustManager {// 该方法检查客户端的证书若不信任该证书则抛出异常。由于我们不需要对客户端进行认证因此我们只需要执行默认的信任管理器的这个方法。// JSSE中默认的信任管理器类为TrustManager。Overridepublic void checkClientTrusted(X509Certificate[] chain, String authType)throws CertificateException {}/** 该方法检查服务器的证书若不信任该证书同样抛出异常。通过自己实现该方法可以使之信任我们指定的任何证书。* 在实现该方法时也可以简单的不做任何处理 即一个空的函数体由于不会抛出异常它就会信任任何证书。(non-Javadoc)*/Overridepublic void checkServerTrusted(X509Certificate[] chain, String authType)throws CertificateException {}// 返回受信任的X509证书数组。Overridepublic X509Certificate[] getAcceptedIssuers() {return new X509Certificate[]{};}}private static class TrustAnyHostnameVerifier implements HostnameVerifier {Overridepublic boolean verify(String hostname, SSLSession session) {return true;}}/*** post方式请求服务器(https协议)** param url 求地址* param content 参数* param charset 编码* return* throws NoSuchAlgorithmException* throws KeyManagementException* throws IOException*/public static byte[] sendJsonToHttpsPost(String url, String content,String charset) throws NoSuchAlgorithmException,KeyManagementException, IOException {/** 类HttpsURLConnection似乎并没有提供方法设置信任管理器。其实* HttpsURLConnection通过SSLSocket来建立与HTTPS的安全连接* SSLSocket对象是由SSLSocketFactory生成的。* HttpsURLConnection提供了方法setSSLSocketFactory* (SSLSocketFactory)设置它使用的SSLSocketFactory对象。* SSLSocketFactory通过SSLContext对象来获得在初始化SSLContext对象时可指定信任管理器对象。*/SSLContext sc SSLContext.getInstance(SSL);sc.init(null, new TrustManager[]{new TrustAnyTrustManager()},new java.security.SecureRandom());URL console new URL(url);HttpsURLConnection conn (HttpsURLConnection) console.openConnection();conn.setSSLSocketFactory(sc.getSocketFactory());conn.setHostnameVerifier(new TrustAnyHostnameVerifier());conn.setDoOutput(true);// 设置请求头conn.setRequestProperty(Content-Type, application/json;charsetutf-8);conn.connect();DataOutputStream out new DataOutputStream(conn.getOutputStream());out.write(content.getBytes(charset));// 刷新、关闭out.flush();out.close();InputStream is conn.getInputStream();if (is ! null) {ByteArrayOutputStream outStream new ByteArrayOutputStream();byte[] buffer new byte[1024];int len 0;while ((len is.read(buffer)) ! -1) {outStream.write(buffer, 0, len);}is.close();return outStream.toByteArray();}return null;}public static void main(String[] args) throws NoSuchAlgorithmException, KeyManagementException, IOException {String url https://127.0.0.1:8888/postToJson;byte[] bytes sendJsonToHttpsPost(url, {\name\:\ly\}, utf-8);System.out.println(响应报文:new String(bytes));} }2. 返回报文监控 解析 通过上述方式可以得到收发方法post()。传入字符串返回字节数组。 传入的字符串处理 JSONObject rspObj new JSONObject(); rspObj.put(arg1, aaa); rspObj.put(arg2, bbb); //... String reqStr rspObj.toString(); System.out.println(请求json:\n reqStr);返回的字节数组转字符串 byte[] result post(reqUrl,reqStr,utf-8); if(result ! null){String rspStr new String(result);System.out.println(响应json:\n rspStr); }二、服务端实现 2.1. 配置SSL 实现HTTPS Spring Boot 配置SSL 实现HTTPS 2.2. 添加post接口方法 package com.gblfy.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody;Controller RequestMapping public class ViewControlller {RequestMapping(value /postToJson, method RequestMethod.POST, produces application/json;charsetUTF-8)ResponseBodypublic String postToJson(RequestBody String json) {System.out.println(https服务端接收到报文: json);return json;} }2.3. 服务端监控 三、进阶测试 3.1. 客户端发送对象 package com.gblfy.pojo;import java.io.Serializable;public class User implements Serializable {private String username;private Integer age;private String passwd;public User(String username, Integer age, String passwd) {this.username username;this.age age;this.passwd passwd;}public User() {}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public String getPasswd() {return passwd;}public void setPasswd(String passwd) {this.passwd passwd;} } public static void main(String[] args) throws NoSuchAlgorithmException, KeyManagementException, IOException, JSONException {//1. 模拟对象发送User user new User();user.setUsername(gblfy);user.setAge(28);user.setPasswd(123456);//2. 配置发送urlString url https://127.0.0.1:8888/postToJson;//3.发送前将对象转json处理JSONObject jsonObject new JSONObject(user);String reqXml jsonObject.toString();//4.向指定url发送json格式的https协议报文byte[] bytes sendJsonToHttpsPost(url, reqXml, utf-8);//5.对返回的报文解析String resXml new String(bytes);JSONObject jsonObj new JSONObject(resXml);//6.从解析的报文中获取指定的值System.out.println(服务端返回报文: jsonObj.getString(username));System.out.println(服务端返回报文: jsonObj.getInt(age));System.out.println(服务端返回报文: jsonObj.getString(passwd));}3.2. 服务端监控 https服务端接收到报文:{passwd:123456,age:28,username:gblfy}3.3. 客户端解析返回报文 服务端返回报文:gblfy 服务端返回报文:28 服务端返回报文:123456
http://www.zqtcl.cn/news/838233/

相关文章:

  • 网站里的图片是怎么做的同泰公司网站公司查询
  • seo怎么做网站内容wordpress文件上传失败
  • zenm自己做网站wordpress 摄影 模板
  • 网站手机页面如何做微信小程序开发平台官网登录
  • 嘉兴外贸网站制作成都网络公司最新招聘
  • 租服务器发布网站团购网站单页模板
  • 西安网站建设运维凡客精选
  • 权威网站发布平台wordpress 如何安装
  • 没有官方网站怎么做seo优化军事新闻
  • 在招聘网站做销售技巧教育培训平台
  • 网站栏目 英文做网站在哪接单
  • 湖北网络营销网站市场营销策划案
  • 政务信息系统网站建设规范上海网站开发制作公司
  • 网站公众平台建设方案湖南seo优化报价
  • 企业网站制作公司discuz 转wordpress
  • 可信网站是什么意思应用软件开发平台
  • 上海市官方网站福建省中嘉建设工程有限公司网站
  • 备案之后怎样把 放到网站上大连建设网球场价格
  • dkp网站开发今天最新新闻
  • 山东省环保厅官方网站建设项目东莞寮步网站设计
  • 网站开发可能遇到的问题附近电脑培训班位置
  • 如何查看域名以前是做什么网站的网站索引下降如何解决
  • 潜江 网站建设扬中话
  • 网站建设项目方案ppt广州建站模板平台
  • 房产部门成立网站免费seo推广软件
  • python做网站好处百度指数分析报告
  • 网站建设挣钱班级介绍网页制作模板
  • 工作室 网站建设app公司
  • 自己做的网站怎么在百度搜索到网页制作论文3000字
  • 如何网站托管中国跨境电商平台有多少