@@ -48,7 +48,8 @@ public class QrCodeRequestExecutor implements RequestExecutor<File, AbstractWxMa | |||||
InputStream inputStream = InputStreamResponseHandler.INSTANCE.handleResponse(response);) { | InputStream inputStream = InputStreamResponseHandler.INSTANCE.handleResponse(response);) { | ||||
Header[] contentTypeHeader = response.getHeaders("Content-Type"); | Header[] contentTypeHeader = response.getHeaders("Content-Type"); | ||||
if (contentTypeHeader != null && contentTypeHeader.length > 0 | if (contentTypeHeader != null && contentTypeHeader.length > 0 | ||||
&& ContentType.APPLICATION_JSON.getMimeType().equals(contentTypeHeader[0].getValue())) { | |||||
&& ContentType.APPLICATION_JSON.getMimeType() | |||||
.equals(ContentType.parse(contentTypeHeader[0].getValue()).getMimeType())) { | |||||
String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); | String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); | ||||
throw new WxErrorException(WxError.fromJson(responseContent)); | throw new WxErrorException(WxError.fromJson(responseContent)); | ||||
} | } | ||||
@@ -1,5 +1,7 @@ | |||||
package me.chanjar.weixin.mp.util.http; | package me.chanjar.weixin.mp.util.http; | ||||
import me.chanjar.weixin.common.bean.result.WxError; | |||||
import me.chanjar.weixin.common.exception.WxErrorException; | |||||
import me.chanjar.weixin.common.util.http.RequestExecutor; | import me.chanjar.weixin.common.util.http.RequestExecutor; | ||||
import me.chanjar.weixin.common.util.http.RequestHttp; | import me.chanjar.weixin.common.util.http.RequestHttp; | ||||
import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket; | import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket; | ||||
@@ -21,7 +23,7 @@ public abstract class QrCodeRequestExecutor<H, P> implements RequestExecutor<Fil | |||||
this.requestHttp = requestHttp; | this.requestHttp = requestHttp; | ||||
} | } | ||||
public static RequestExecutor<File, WxMpQrCodeTicket> create(RequestHttp requestHttp) { | |||||
public static RequestExecutor<File, WxMpQrCodeTicket> create(RequestHttp requestHttp) throws WxErrorException { | |||||
switch (requestHttp.getRequestType()) { | switch (requestHttp.getRequestType()) { | ||||
case APACHE_HTTP: | case APACHE_HTTP: | ||||
return new ApacheQrCodeRequestExecutor(requestHttp); | return new ApacheQrCodeRequestExecutor(requestHttp); | ||||
@@ -30,8 +32,7 @@ public abstract class QrCodeRequestExecutor<H, P> implements RequestExecutor<Fil | |||||
case OK_HTTP: | case OK_HTTP: | ||||
return new OkhttpQrCodeRequestExecutor(requestHttp); | return new OkhttpQrCodeRequestExecutor(requestHttp); | ||||
default: | default: | ||||
//TODO 需要优化,最好抛出异常 | |||||
return null; | |||||
throw new WxErrorException(WxError.newBuilder().setErrorMsg("不支持的http框架").build()); | |||||
} | } | ||||
} | } | ||||
@@ -52,7 +52,8 @@ public class ApacheQrCodeRequestExecutor extends QrCodeRequestExecutor<Closeable | |||||
Header[] contentTypeHeader = response.getHeaders("Content-Type"); | Header[] contentTypeHeader = response.getHeaders("Content-Type"); | ||||
if (contentTypeHeader != null && contentTypeHeader.length > 0) { | if (contentTypeHeader != null && contentTypeHeader.length > 0) { | ||||
// 出错 | // 出错 | ||||
if (ContentType.TEXT_PLAIN.getMimeType().equals(contentTypeHeader[0].getValue())) { | |||||
if (ContentType.TEXT_PLAIN.getMimeType() | |||||
.equals(ContentType.parse(contentTypeHeader[0].getValue()).getMimeType())) { | |||||
String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); | String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); | ||||
throw new WxErrorException(WxError.fromJson(responseContent)); | throw new WxErrorException(WxError.fromJson(responseContent)); | ||||
} | } | ||||