ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基于Spring Boot + HttpClient框架的数据一致性校验

2021-04-23 20:33:01  阅读:219  来源: 互联网

标签:xml XML 请求 Spring Boot token Accept json HttpClient


 

4月23

 

4月22

token鉴权的2种方式,参考博客

Http请求Authorization认证:传Authorization时选择Basic Auth 填写用户名 密码。此次header不需要填写token、X-Auth-Token,需要填写Project

token登录:header需要填写token、X-Auth-Token、Project。当然必不可少的Content-Type:application/json、Accept:application/json

https://blog.csdn.net/weixin_36260016/article/details/114089891

https://blog.iprac.cn/blogs/55.html

String encoding = DatatypeConverter.printBase64Binary("username:passwd".getBytes("UTF-8"));  //username  password 自行修改  中间":"不可少
getMethod.addRequestHeader(new Header("Authorization", "Basic " + encoding));

 

 

HTTP Header 详解 -Requests部分

Header解释示例
Accept指定客户端能够接收的内容类型Accept: text/plain, text/html
Accept-Charset浏览器可以接受的字符编码集。Accept-Charset: iso-8859-5
Accept-Encoding指定浏览器可以支持的web服务器返回内容压缩编码类型。Accept-Encoding: compress, gzip
AuthorizationHTTP授权的授权证书Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
CookieHTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。Cookie: $Version=1; Skin=new;
Content-Length请求的内容长度Content-Length: 348
Content-Type请求的与实体对应的MIME信息Content-Type: application/x-www-form-urlencoded
Expect请求的特定的服务器行为Expect: 100-continue
From发出请求的用户的EmailFrom: user@email.com
Host指定请求的服务器的域名和端口号Host: www.zcmhi.com

4月21

接口运行结果代码乱码


a���[��
�8N���]��3�K�Eʸe�����a�;(�ĕͱ:9���JUeg�zw^
�\ϵu`:�G�ǏK�1r�<]�4�F'n� ��a��8���/�������-����?��    ��UV
a���[��
�8N���]��3�K�Eʸe�����a�;(�ĕͱ:9���JUeg�zw^
�\ϵu`:�G�ǏK�1r�<]�4�F'n� ��a��8���/�������-����?��    ��UV四月 21, 2021 8:19:03 下午 org.apache.commons.httpclient.HttpMethodBase getResponseBody
a���[��
�8N���]��3�K�Eʸe�����a�;(�ĕͱ:9���JUeg�zw^
�\ϵu`:�G�ǏK�1r�<]�4�F'n� ��a��8���/�������-����?��    ��UV

http协议,就协议本身而言,是一种文本协议。文本协议可读性比较好,但是协议所占的字节较多。目前http服务端响应普遍是json格式。其实是文本格式都行的。xml也算

java栈会接触较多的xml。而且xml的表达性更强,尤其针对字符类型

请求里的Header,Accept为标识返回协议json/xml的参数。在浏览器抓到的请求为xml但是自动化要改为Accept: application/json

长连接的保活机制:  https://blog.csdn.net/qq_22642239/article/details/109024544

 

解决办法:json xml反序列化转换、把xml转化为json格式

postman 浏览器之所以支持xml转json是因为工具本身支持 自动化的话需要自己封装框架

参考 Quickest way to convert XML to JSON in Java 

 https://stackoverflow.com/questions/1823264/quickest-way-to-convert-xml-to-json-in-java

  • 先接收接口的原始格式响应,也就是xml格式响应
  • 将xml 转为java 的对象数据类型,需要下载jar包
  • 如果还需要转换成json对象的话,再序列化一下即可,序列化也有jar包

导入的maven配置

<!--4月23新增把xml转化为json格式-->
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20180813</version>
</dependency>

 

import org.json.JSONObject;
import org.json.XML;
import org.json.JSONException;

public class Main {

    public static int PRETTY_PRINT_INDENT_FACTOR = 4;
    public static String TEST_XML_STRING =
        "<?xml version=\"1.0\" ?><test attrib=\"moretest\">Turn this to JSON</test>";

    public static void main(String[] args) {
        try {
            JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING);
            String jsonPrettyPrintString = xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR);
            System.out.println(jsonPrettyPrintString);
        } catch (JSONException je) {
            System.out.println(je.toString());
        }
    }
}

标签:xml,XML,请求,Spring,Boot,token,Accept,json,HttpClient
来源: https://blog.csdn.net/weixin_42498050/article/details/116069479

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有