From 298108778140f80b51de6bf3002b9cb0861e5547 Mon Sep 17 00:00:00 2001 From: egzosn Date: Tue, 22 Jan 2019 11:33:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E7=A0=81=E8=BD=AC=E5=8C=96=EF=BC=8Cxm?= =?UTF-8?q?l=E8=A7=A3=E6=9E=90=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/common/http/ClientHttpRequest.java | 2 +- .../java/com/egzosn/pay/common/util/XML.java | 31 +++++++++++++++++-- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/http/ClientHttpRequest.java b/pay-java-common/src/main/java/com/egzosn/pay/common/http/ClientHttpRequest.java index 6262fc4..356c32c 100644 --- a/pay-java-common/src/main/java/com/egzosn/pay/common/http/ClientHttpRequest.java +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/http/ClientHttpRequest.java @@ -316,7 +316,7 @@ public class ClientHttpRequest extends HttpEntityEnclosingRequestBase impleme //xml类型 if (isXml(contentType[0], first)) { try { - return XML.toJSONObject(result).toJavaObject(responseType); + return XML.toJSONObject(result, defaultCharset).toJavaObject(responseType); }catch (Exception e){ ; } diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/util/XML.java b/pay-java-common/src/main/java/com/egzosn/pay/common/util/XML.java index 10f5c20..2cd7080 100644 --- a/pay-java-common/src/main/java/com/egzosn/pay/common/util/XML.java +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/util/XML.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.egzosn.pay.common.bean.result.PayException; import com.egzosn.pay.common.exception.PayErrorException; +import com.egzosn.pay.common.util.str.StringUtils; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -20,6 +21,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; +import java.nio.charset.Charset; import java.util.Map; @@ -64,10 +66,35 @@ public class XML { */ public static JSONObject toJSONObject(String content) { - if (null == content || "".equals(content)) { + return toJSONObject(content, Charset.defaultCharset()); + + + } + /** + * 解析xml并转化为Json值 + * + * @param content json字符串 + * @return Json值 + */ + public static JSONObject toJSONObject(String content, Charset charset) { + + if (StringUtils.isEmpty(content)) { return null; } - try (InputStream in = new ByteArrayInputStream(content.getBytes("UTF-8"))) { + return toJSONObject(content.getBytes(charset)); + } + /** + * 解析xml并转化为Json值 + * + * @param content json字符串 + * @return Json值 + */ + public static JSONObject toJSONObject(byte[] content) { + + if (null == content) { + return null; + } + try (InputStream in = new ByteArrayInputStream(content)) { return (JSONObject) inputStream2Map(in, null); } catch (IOException e) { throw new PayErrorException(new PayException("IOException", e.getMessage()));