使用此种方式读取微信支付回调数据,可以接收到完整的数据:
DataInputStream in= new DataInputStream(request.getInputStream());
byte[] dataOrigin = new byte[request.getContentLength()];
in.readFully(dataOrigin); // 根据长度,将消息实体的内容读入字节数组dataOrigin中
if (null != in) {
in.close(); // 关闭数据流
}
String wxNotifyXml = new String(dataOrigin); // 从字节数组中得到表示实体的字符串