在調接口時,會將請求體進行加密,代碼如下:
public class DataEncrypt2Test { public static void main(String[] args) throws Exception { String pubKey = "省略不寫";// 生產批次 StringBuilder sb = new StringBuilder(); sb.append("很長字符串1,省略不寫,下同"); sb.append("很長字符穿2"); sb.append("很長字符串3"); sb.append("很長字符串4"); sb.append("很長字符串5"); sb.append("很長字符串6"); sb.append("很長字符串7" ); sb.append("很長字符串8"); sb.append("很長字符串9"); sb.append("很長字符串10"); sb.append("很長字符串11"); String str = sb.toString(); JSONObject json = new JSONObject(); json.put("ycocode","09876543211234567890"); json.put("yconame","華潤制葯"); json.put("medicode","B1243253"); json.put("mediname","當歸"); json.put("allowname","張山"); json.put("locality","深圳"); json.put("batchno","B345353"); json.put("batchciid","3452352"); json.put("prodate","2021-10-10"); json.put("checkdate","2021-11-11"); json.put("packgg","10/箱"); json.put("checkname","王五"); json.put("norm","國標"); json.put("arts","工藝01"); json.put("yreport",str); json.put("creport",str); json.put("updatetime","2021-12-12"); json.put("ybatchid","1232141"); json.put("unit","kg"); json.put("quantity","100"); json.put("billtype","銷售出庫"); String encrypt = RSAUtils.encryptByPublicKey(json.toString(), pubKey); System.out.println("requestData===> "); System.out.println(encrypt); } }
通過postman發起請求,報錯:unclosed string
原因分析:由於請求體中有兩張圖片,加密后字符串的長度為:1053356,由於idea控制台打印日志有限制,導致加密后在控制台打印出來的密文不完整,當去請求后台時,就會報錯unclosed string.
修改如下: