接口开发遇到BASE64编码并且报文被压缩的情况怎么办

Posted kokimiki

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口开发遇到BASE64编码并且报文被压缩的情况怎么办相关的知识,希望对你有一定的参考价值。

1:核心代码

JSONObject json=(JSONObject) JSON.parse(responseContent);
byte [] compress=Base64.decodeBase64((json.getString("result").getBytes("UTF-8")));    (org.apache.commons.net.util.Base64)

byte [] umcompress=GZipUtil.uncompress(compress);
String jsons=new String(umcompress,"UTF-8");

 

2:解压工具类代码如下:

package com.trafree.banking.server.hardcore.util;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;

public class GZipUtil {

/**
* 解压
* 使用gzip进行解压缩
* @param compressedStr
* @return
*/
public static byte[] uncompress(byte[] compressedStr) {
if (compressedStr == null) {
return null;
}
byte[] decompressed = null;
try {

ByteArrayInputStream in = new ByteArrayInputStream(compressedStr);
GZIPInputStream ginzip = new GZIPInputStream(in);


ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int offset = -1;
while ((offset = ginzip.read(buffer, 0, buffer.length)) != -1) {
out.write(buffer, 0, offset);
}
decompressed = out.toByteArray();
in.close();
ginzip.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return decompressed;
}
}

 

这样就可以获取到BASE64解码并解压后的报文了,一般在用 JSON 报文格式请求接口时,有可能会出现这样的情况.

以上是关于接口开发遇到BASE64编码并且报文被压缩的情况怎么办的主要内容,如果未能解决你的问题,请参考以下文章

python中base64编码与解码

python base 64

python3的base64编解码

Java Base64编码存在 情况

base64编码问题

PHP base64_decode+gzinflate压缩和解密代码图文教程