From e171f33ebd6654cc865ce79e9e1e0cd2e57087c7 Mon Sep 17 00:00:00 2001 From: zzs Date: Wed, 8 Mar 2017 20:35:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DClientHttpRequest=E7=9A=84bug?= =?UTF-8?q?,=20=E5=AE=9A=E4=B9=89=E4=BA=A4=E6=98=93=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=9A=84=E2=80=9C=E6=8E=A5=E5=8F=A3=E2=80=9D=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../egan/pay/common/api/PayConfigStorage.java | 3 ++- .../egan/pay/common/bean/TransactionType.java | 6 ++++++ .../pay/common/http/ClientHttpRequest.java | 19 ++++++++++++------- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/pay-java-common/src/main/java/in/egan/pay/common/api/PayConfigStorage.java b/pay-java-common/src/main/java/in/egan/pay/common/api/PayConfigStorage.java index 6b9e8f7..fb8f0f6 100644 --- a/pay-java-common/src/main/java/in/egan/pay/common/api/PayConfigStorage.java +++ b/pay-java-common/src/main/java/in/egan/pay/common/api/PayConfigStorage.java @@ -19,12 +19,13 @@ import java.util.concurrent.locks.Lock; String getAppid(); /** * 合作商唯一标识 + * @see #getPid() 代替者 */ @Deprecated String getPartner(); /** * 合作商唯一标识 - * @see #getPartner 代替者 + * @see #getPartner() 代替者 */ String getPid(); diff --git a/pay-java-common/src/main/java/in/egan/pay/common/bean/TransactionType.java b/pay-java-common/src/main/java/in/egan/pay/common/bean/TransactionType.java index 03815f7..2ffb363 100644 --- a/pay-java-common/src/main/java/in/egan/pay/common/bean/TransactionType.java +++ b/pay-java-common/src/main/java/in/egan/pay/common/bean/TransactionType.java @@ -12,5 +12,11 @@ public interface TransactionType { * @return */ String getType(); + + /** + * 获取接口 + * @return + */ + String getMethod(); } diff --git a/pay-java-common/src/main/java/in/egan/pay/common/http/ClientHttpRequest.java b/pay-java-common/src/main/java/in/egan/pay/common/http/ClientHttpRequest.java index 5194c62..e74ebe4 100644 --- a/pay-java-common/src/main/java/in/egan/pay/common/http/ClientHttpRequest.java +++ b/pay-java-common/src/main/java/in/egan/pay/common/http/ClientHttpRequest.java @@ -196,10 +196,18 @@ public class ClientHttpRequest extends HttpEntityEnclosingRequestBase impleme throw new HttpResponseException(statusLine.getStatusCode(), responseType + " 无法进行类型转换"); } } + String charset = "UTF-8"; + if (null != value && 2 == charset.length()) { + charset = value[1].substring(value[1].indexOf("=") + 1); + } + String result = EntityUtils.toString(entity, charset); + + if (responseType.isAssignableFrom(String.class)){ + return (T)result; + } - String result = EntityUtils.toString(entity, value[1].substring( value[1].indexOf("=") + 1)); String frist = result.substring(0, 1); - if (ContentType.APPLICATION_JSON.getMimeType().equals( value[0]) || "{[".indexOf(frist) >= 0){ + if ( ContentType.APPLICATION_JSON.getMimeType().equals( value[0]) || "{[".indexOf(frist) >= 0 ){ try { return JSON.parseObject(result, responseType); }catch (JSONException e){ @@ -207,14 +215,11 @@ public class ClientHttpRequest extends HttpEntityEnclosingRequestBase impleme } } - if (ContentType.APPLICATION_XML.getMimeType().equals( value[0])){ + if (ContentType.APPLICATION_XML.getMimeType().equals( value[0]) || "<".indexOf(frist) >= 0){ return XML.toJSONObject(result).toJavaObject(responseType); } - if (!responseType.isAssignableFrom(String.class)){ - throw new PayErrorException(new PayException("failure", "类型转化异常,contentType:" + entity.getContentType().getValue(), result)); - } - return (T)result; + throw new PayErrorException(new PayException("failure", "类型转化异常,contentType:" + entity.getContentType().getValue(), result)); } }