zoukankan      html  css  js  c++  java
  • 在JSON中遇到的一些坑

    今天在进行压测的时候,由于需要使用到json进行传参,并且需要在JMeter中加入少量的JSON,由于JSON在java中呈现键值对的形式,并且需要使用到“”来修饰,导致只能使用进行转义,在发送请求的时候,还需要对相关数据进行RSA加密,很奇怪的事情发生了,编写了三个json,有两个json发送到后台后,是正常的可以进行RSA加签以及验签的,有一个JSON死活都过不去。

    发现问题:一段JSON通过加签,正常,发送到服务器后,进行验签操作的时候,出现,验签不通过。

    解决问题:

    1. 检查公私钥是否正确,由于分析前两个秘钥是正常的,可以排除秘钥不一致的问题

    2. 是否由于验证签名方法出现了问题?检查方法后发现没有问题

    3. 检查JSON是否出现问题?初步检查没有问题;

    JOSN通过转化后出现如下图

    "{"sequenceNo ":"201806050054"+vars.get("quotaNo")+""," +
    		""ts":"1318041322348"}"
    

    4. 再次检查JSON后发现,在sequenceNo 前面有一个空格,没有发现

    5. 删除空格后,验证后成功

    问题分析:

    1. 由于在JSON中存在空格,暂时没有发现导致,为什么会出现这种问题?有以下几个原因:

          接口文档中存在空格;

          由于源文档中存在空格是没有问题的,但是由于在后台处理的时候,将其通过fastjson转换成了Object类,由于转换后又将Object序列化层JSON字符串后,导致空格丢失,再进行验证RSA时候导致验证不通过,导致出现上述问题。

    总结:

      1. 谨慎使用JSON字符串进行拼接。

      2. 如果需要转换成JSON字符串,最好采用工具进行转换,防止此次问题的发生

  • 相关阅读:
    aws-lambda之异步实现文件的下载上传
    aws实例部署flask报错script-timed-out-before-returning-headers-application-py
    aws上部署scrapy,出现 Out of Memory,内存溢出
    在线UserAgent,爬虫UA
    ubuntu10.24 下安装 unixODBC coreseek4.1 手记
    ubuntu12.04 安装 python2.6
    coreseek/sphinx CentOS6.4下安装
    Elasticsearch 6.2.3 崩溃经历
    (转)梳理在线教育的几大金矿
    kangaroo-open 开源在线公开课平台
  • 原文地址:https://www.cnblogs.com/lonecloud/p/9409337.html
Copyright © 2011-2022 走看看