@@ -1,24 +1,24 @@ | |||||
package me.chanjar.weixin.mp.util.requestexecuter.material; | package me.chanjar.weixin.mp.util.requestexecuter.material; | ||||
import java.io.IOException; | |||||
import org.slf4j.Logger; | |||||
import org.slf4j.LoggerFactory; | |||||
import com.google.common.collect.ImmutableMap; | |||||
import me.chanjar.weixin.common.WxType; | import me.chanjar.weixin.common.WxType; | ||||
import me.chanjar.weixin.common.error.WxError; | import me.chanjar.weixin.common.error.WxError; | ||||
import me.chanjar.weixin.common.error.WxErrorException; | import me.chanjar.weixin.common.error.WxErrorException; | ||||
import me.chanjar.weixin.common.util.http.RequestHttp; | import me.chanjar.weixin.common.util.http.RequestHttp; | ||||
import me.chanjar.weixin.common.util.http.ResponseHandler; | import me.chanjar.weixin.common.util.http.ResponseHandler; | ||||
import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo; | import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo; | ||||
import okhttp3.FormBody; | |||||
import okhttp3.OkHttpClient; | |||||
import okhttp3.Request; | |||||
import okhttp3.RequestBody; | |||||
import okhttp3.Response; | |||||
import me.chanjar.weixin.common.util.json.WxGsonBuilder; | |||||
import okhttp3.*; | |||||
import org.slf4j.Logger; | |||||
import org.slf4j.LoggerFactory; | |||||
import java.io.IOException; | |||||
/** | /** | ||||
* Created by ecoolper on 2017/5/5. | |||||
* . | |||||
* | |||||
* @author ecoolper | |||||
* @date 2017/5/5 | |||||
*/ | */ | ||||
public class MaterialDeleteOkhttpRequestExecutor extends MaterialDeleteRequestExecutor<OkHttpClient, OkHttpProxyInfo> { | public class MaterialDeleteOkhttpRequestExecutor extends MaterialDeleteRequestExecutor<OkHttpClient, OkHttpProxyInfo> { | ||||
private final Logger logger = LoggerFactory.getLogger(this.getClass()); | private final Logger logger = LoggerFactory.getLogger(this.getClass()); | ||||
@@ -28,25 +28,25 @@ public class MaterialDeleteOkhttpRequestExecutor extends MaterialDeleteRequestEx | |||||
} | } | ||||
@Override | @Override | ||||
public void execute(String uri, String data, ResponseHandler<Boolean> handler, WxType wxType) throws WxErrorException, IOException { | |||||
public void execute(String uri, String data, ResponseHandler<Boolean> handler, WxType wxType) | |||||
throws WxErrorException, IOException { | |||||
handler.handle(this.execute(uri, data, wxType)); | handler.handle(this.execute(uri, data, wxType)); | ||||
} | } | ||||
@Override | @Override | ||||
public Boolean execute(String uri, String materialId, WxType wxType) throws WxErrorException, IOException { | public Boolean execute(String uri, String materialId, WxType wxType) throws WxErrorException, IOException { | ||||
logger.debug("MaterialDeleteOkhttpRequestExecutor is running"); | logger.debug("MaterialDeleteOkhttpRequestExecutor is running"); | ||||
//得到httpClient | |||||
OkHttpClient client = requestHttp.getRequestHttpClient(); | |||||
RequestBody requestBody = new FormBody.Builder().add("media_id", materialId).build(); | |||||
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), | |||||
WxGsonBuilder.create().toJson(ImmutableMap.of("media_id", materialId))); | |||||
Request request = new Request.Builder().url(uri).post(requestBody).build(); | Request request = new Request.Builder().url(uri).post(requestBody).build(); | ||||
Response response = client.newCall(request).execute(); | |||||
Response response = requestHttp.getRequestHttpClient().newCall(request).execute(); | |||||
String responseContent = response.body().string(); | String responseContent = response.body().string(); | ||||
WxError error = WxError.fromJson(responseContent, WxType.MP); | WxError error = WxError.fromJson(responseContent, WxType.MP); | ||||
if (error.getErrorCode() != 0) { | if (error.getErrorCode() != 0) { | ||||
throw new WxErrorException(error); | throw new WxErrorException(error); | ||||
} else { | |||||
return true; | |||||
} | } | ||||
return true; | |||||
} | } | ||||
} | } |
@@ -28,13 +28,11 @@ public class MaterialNewsInfoOkhttpRequestExecutor extends MaterialNewsInfoReque | |||||
@Override | @Override | ||||
public WxMpMaterialNews execute(String uri, String materialId, WxType wxType) throws WxErrorException, IOException { | public WxMpMaterialNews execute(String uri, String materialId, WxType wxType) throws WxErrorException, IOException { | ||||
OkHttpClient client = requestHttp.getRequestHttpClient(); | |||||
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), | RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), | ||||
WxGsonBuilder.create().toJson(ImmutableMap.of("media_id", materialId))); | WxGsonBuilder.create().toJson(ImmutableMap.of("media_id", materialId))); | ||||
Request request = new Request.Builder().url(uri).post(requestBody).build(); | Request request = new Request.Builder().url(uri).post(requestBody).build(); | ||||
Response response = client.newCall(request).execute(); | |||||
Response response = requestHttp.getRequestHttpClient().newCall(request).execute(); | |||||
String responseContent = response.body().string(); | String responseContent = response.body().string(); | ||||
log.debug("响应原始数据:{}", responseContent); | log.debug("响应原始数据:{}", responseContent); | ||||
@@ -38,8 +38,6 @@ public class MaterialUploadOkhttpRequestExecutor extends MaterialUploadRequestEx | |||||
throw new FileNotFoundException(); | throw new FileNotFoundException(); | ||||
} | } | ||||
//得到httpClient | |||||
OkHttpClient client = requestHttp.getRequestHttpClient(); | OkHttpClient client = requestHttp.getRequestHttpClient(); | ||||
MultipartBody.Builder bodyBuilder = new MultipartBody.Builder() | MultipartBody.Builder bodyBuilder = new MultipartBody.Builder() | ||||
@@ -1,10 +1,12 @@ | |||||
package me.chanjar.weixin.mp.util.requestexecuter.material; | package me.chanjar.weixin.mp.util.requestexecuter.material; | ||||
import com.google.common.collect.ImmutableMap; | |||||
import me.chanjar.weixin.common.WxType; | import me.chanjar.weixin.common.WxType; | ||||
import me.chanjar.weixin.common.error.WxError; | import me.chanjar.weixin.common.error.WxError; | ||||
import me.chanjar.weixin.common.error.WxErrorException; | import me.chanjar.weixin.common.error.WxErrorException; | ||||
import me.chanjar.weixin.common.util.http.RequestHttp; | import me.chanjar.weixin.common.util.http.RequestHttp; | ||||
import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo; | import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo; | ||||
import me.chanjar.weixin.common.util.json.WxGsonBuilder; | |||||
import me.chanjar.weixin.mp.bean.material.WxMpMaterialVideoInfoResult; | import me.chanjar.weixin.mp.bean.material.WxMpMaterialVideoInfoResult; | ||||
import okhttp3.*; | import okhttp3.*; | ||||
import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
@@ -25,12 +27,11 @@ public class MaterialVideoInfoOkhttpRequestExecutor extends MaterialVideoInfoReq | |||||
@Override | @Override | ||||
public WxMpMaterialVideoInfoResult execute(String uri, String materialId, WxType wxType) throws WxErrorException, IOException { | public WxMpMaterialVideoInfoResult execute(String uri, String materialId, WxType wxType) throws WxErrorException, IOException { | ||||
logger.debug("MaterialVideoInfoOkhttpRequestExecutor is running"); | logger.debug("MaterialVideoInfoOkhttpRequestExecutor is running"); | ||||
//得到httpClient | |||||
OkHttpClient client = requestHttp.getRequestHttpClient(); | |||||
RequestBody requestBody = new FormBody.Builder().add("media_id", materialId).build(); | |||||
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), | |||||
WxGsonBuilder.create().toJson(ImmutableMap.of("media_id", materialId))); | |||||
Request request = new Request.Builder().url(uri).post(requestBody).build(); | Request request = new Request.Builder().url(uri).post(requestBody).build(); | ||||
Response response = client.newCall(request).execute(); | |||||
Response response = requestHttp.getRequestHttpClient().newCall(request).execute(); | |||||
String responseContent = response.body().string(); | String responseContent = response.body().string(); | ||||
WxError error = WxError.fromJson(responseContent, WxType.MP); | WxError error = WxError.fromJson(responseContent, WxType.MP); | ||||
if (error.getErrorCode() != 0) { | if (error.getErrorCode() != 0) { | ||||
@@ -1,10 +1,12 @@ | |||||
package me.chanjar.weixin.mp.util.requestexecuter.material; | package me.chanjar.weixin.mp.util.requestexecuter.material; | ||||
import com.google.common.collect.ImmutableMap; | |||||
import me.chanjar.weixin.common.WxType; | import me.chanjar.weixin.common.WxType; | ||||
import me.chanjar.weixin.common.error.WxError; | import me.chanjar.weixin.common.error.WxError; | ||||
import me.chanjar.weixin.common.error.WxErrorException; | import me.chanjar.weixin.common.error.WxErrorException; | ||||
import me.chanjar.weixin.common.util.http.RequestHttp; | import me.chanjar.weixin.common.util.http.RequestHttp; | ||||
import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo; | import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo; | ||||
import me.chanjar.weixin.common.util.json.WxGsonBuilder; | |||||
import okhttp3.*; | import okhttp3.*; | ||||
import okio.BufferedSink; | import okio.BufferedSink; | ||||
import okio.Okio; | import okio.Okio; | ||||
@@ -27,7 +29,9 @@ public class MaterialVoiceAndImageDownloadOkhttpRequestExecutor extends Material | |||||
public InputStream execute(String uri, String materialId, WxType wxType) throws WxErrorException, IOException { | public InputStream execute(String uri, String materialId, WxType wxType) throws WxErrorException, IOException { | ||||
logger.debug("MaterialVoiceAndImageDownloadOkhttpRequestExecutor is running"); | logger.debug("MaterialVoiceAndImageDownloadOkhttpRequestExecutor is running"); | ||||
OkHttpClient client = requestHttp.getRequestHttpClient(); | OkHttpClient client = requestHttp.getRequestHttpClient(); | ||||
RequestBody requestBody = new FormBody.Builder().add("media_id", materialId).build(); | |||||
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), | |||||
WxGsonBuilder.create().toJson(ImmutableMap.of("media_id", materialId))); | |||||
Request request = new Request.Builder().url(uri).get().post(requestBody).build(); | Request request = new Request.Builder().url(uri).get().post(requestBody).build(); | ||||
Response response = client.newCall(request).execute(); | Response response = client.newCall(request).execute(); | ||||
String contentTypeHeader = response.header("Content-Type"); | String contentTypeHeader = response.header("Content-Type"); | ||||
@@ -35,6 +39,7 @@ public class MaterialVoiceAndImageDownloadOkhttpRequestExecutor extends Material | |||||
String responseContent = response.body().string(); | String responseContent = response.body().string(); | ||||
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MP)); | throw new WxErrorException(WxError.fromJson(responseContent, WxType.MP)); | ||||
} | } | ||||
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); BufferedSink sink = Okio.buffer(Okio.sink(outputStream))) { | try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); BufferedSink sink = Okio.buffer(Okio.sink(outputStream))) { | ||||
sink.writeAll(response.body().source()); | sink.writeAll(response.body().source()); | ||||
return new ByteArrayInputStream(outputStream.toByteArray()); | return new ByteArrayInputStream(outputStream.toByteArray()); | ||||
@@ -9,16 +9,16 @@ import me.chanjar.weixin.mp.api.WxMpService; | |||||
import me.chanjar.weixin.mp.api.test.ApiTestModule; | import me.chanjar.weixin.mp.api.test.ApiTestModule; | ||||
import me.chanjar.weixin.mp.api.test.TestConstants; | import me.chanjar.weixin.mp.api.test.TestConstants; | ||||
import me.chanjar.weixin.mp.bean.material.*; | import me.chanjar.weixin.mp.bean.material.*; | ||||
import org.testng.annotations.*; | |||||
import org.testng.annotations.DataProvider; | |||||
import org.testng.annotations.Guice; | |||||
import org.testng.annotations.Test; | |||||
import java.io.File; | import java.io.File; | ||||
import java.io.IOException; | import java.io.IOException; | ||||
import java.io.InputStream; | import java.io.InputStream; | ||||
import java.util.*; | import java.util.*; | ||||
import static org.testng.Assert.assertEquals; | |||||
import static org.testng.Assert.assertNotNull; | |||||
import static org.testng.Assert.assertTrue; | |||||
import static org.testng.Assert.*; | |||||
/** | /** | ||||
* 素材管理相关接口的测试 | * 素材管理相关接口的测试 | ||||
@@ -27,7 +27,7 @@ import static org.testng.Assert.assertTrue; | |||||
* @author codepiano | * @author codepiano | ||||
* @author Binary Wang | * @author Binary Wang | ||||
*/ | */ | ||||
@Test(groups = "materialAPI") | |||||
@Test | |||||
@Guice(modules = ApiTestModule.class) | @Guice(modules = ApiTestModule.class) | ||||
public class WxMpMaterialServiceImplTest { | public class WxMpMaterialServiceImplTest { | ||||
@Inject | @Inject | ||||
@@ -175,7 +175,7 @@ public class WxMpMaterialServiceImplTest { | |||||
} | } | ||||
} | } | ||||
@Test(dependsOnMethods = {"testAddNews","testUploadMaterial"}) | |||||
@Test(dependsOnMethods = {"testAddNews", "testUploadMaterial"}) | |||||
public void testGetNewsInfo() throws WxErrorException { | public void testGetNewsInfo() throws WxErrorException { | ||||
WxMpMaterialNews wxMpMaterialNewsSingle = this.wxService | WxMpMaterialNews wxMpMaterialNewsSingle = this.wxService | ||||
.getMaterialService().materialNewsInfo(this.singleNewsMediaId); | .getMaterialService().materialNewsInfo(this.singleNewsMediaId); | ||||
@@ -243,6 +243,15 @@ public class WxMpMaterialServiceImplTest { | |||||
@Test(dependsOnMethods = {"testMaterialFileList"}, dataProvider = "allTestMaterial") | @Test(dependsOnMethods = {"testMaterialFileList"}, dataProvider = "allTestMaterial") | ||||
public void testDeleteMaterial(String mediaId) throws WxErrorException { | public void testDeleteMaterial(String mediaId) throws WxErrorException { | ||||
this.delete(mediaId); | |||||
} | |||||
@Test | |||||
public void testDeleteMaterialDirectly() throws WxErrorException { | |||||
this.delete("abc"); | |||||
} | |||||
public void delete(String mediaId) throws WxErrorException { | |||||
boolean result = this.wxService.getMaterialService().materialDelete(mediaId); | boolean result = this.wxService.getMaterialService().materialDelete(mediaId); | ||||
assertTrue(result); | assertTrue(result); | ||||
} | } | ||||