mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-04-05 17:38:05 +08:00
#269 修复okhttp实现素材上传时的问题
This commit is contained in:
parent
e9f55665ec
commit
dde7c643fa
@ -39,8 +39,12 @@ public class OkHttpMediaUploadRequestExecutor extends MediaUploadRequestExecutor
|
|||||||
//得到httpClient
|
//得到httpClient
|
||||||
OkHttpClient client = clientBuilder.build();
|
OkHttpClient client = clientBuilder.build();
|
||||||
|
|
||||||
RequestBody fileBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
|
RequestBody body = new MultipartBody.Builder()
|
||||||
RequestBody body = new MultipartBody.Builder().addFormDataPart("media", null, fileBody).build();
|
.setType(MediaType.parse("multipart/form-data"))
|
||||||
|
.addFormDataPart("media",
|
||||||
|
file.getName(),
|
||||||
|
RequestBody.create(MediaType.parse("application/octet-stream"), file))
|
||||||
|
.build();
|
||||||
Request request = new Request.Builder().url(uri).post(body).build();
|
Request request = new Request.Builder().url(uri).post(body).build();
|
||||||
|
|
||||||
Response response = client.newCall(request).execute();
|
Response response = client.newCall(request).execute();
|
||||||
|
@ -25,6 +25,14 @@ public class OkhttpMaterialUploadRequestExecutor extends MaterialUploadRequestEx
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WxMpMaterialUploadResult execute(String uri, WxMpMaterial material) throws WxErrorException, IOException {
|
public WxMpMaterialUploadResult execute(String uri, WxMpMaterial material) throws WxErrorException, IOException {
|
||||||
|
if (material == null) {
|
||||||
|
throw new WxErrorException(WxError.newBuilder().setErrorMsg("非法请求,material参数为空").build());
|
||||||
|
}
|
||||||
|
File file = material.getFile();
|
||||||
|
if (file == null || !file.exists()) {
|
||||||
|
throw new FileNotFoundException();
|
||||||
|
}
|
||||||
|
|
||||||
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder().connectionPool(requestHttp.getRequestHttpClient());
|
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder().connectionPool(requestHttp.getRequestHttpClient());
|
||||||
//设置代理
|
//设置代理
|
||||||
if (requestHttp.getRequestHttpProxy() != null) {
|
if (requestHttp.getRequestHttpProxy() != null) {
|
||||||
@ -40,27 +48,19 @@ public class OkhttpMaterialUploadRequestExecutor extends MaterialUploadRequestEx
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
//得到httpClient
|
|
||||||
OkHttpClient client = clientBuilder.build();
|
|
||||||
|
|
||||||
|
MultipartBody.Builder bodyBuilder = new MultipartBody.Builder()
|
||||||
if (material == null) {
|
.setType(MediaType.parse("multipart/form-data"))
|
||||||
throw new WxErrorException(WxError.newBuilder().setErrorMsg("非法请求,material参数为空").build());
|
.addFormDataPart("media",
|
||||||
}
|
file.getName(),
|
||||||
|
RequestBody.create(MediaType.parse("application/octet-stream"), file));
|
||||||
File file = material.getFile();
|
|
||||||
if (file == null || !file.exists()) {
|
|
||||||
throw new FileNotFoundException();
|
|
||||||
}
|
|
||||||
RequestBody fileBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
|
|
||||||
MultipartBody.Builder bodyBuilder = new MultipartBody.Builder().addFormDataPart("media", null, fileBody);
|
|
||||||
Map<String, String> form = material.getForm();
|
Map<String, String> form = material.getForm();
|
||||||
if (material.getForm() != null) {
|
if (form != null) {
|
||||||
bodyBuilder.addFormDataPart("description", WxGsonBuilder.create().toJson(form));
|
bodyBuilder.addFormDataPart("description", WxGsonBuilder.create().toJson(form));
|
||||||
}
|
}
|
||||||
RequestBody body = bodyBuilder.build();
|
|
||||||
Request request = new Request.Builder().url(uri).post(body).build();
|
Request request = new Request.Builder().url(uri).post(bodyBuilder.build()).build();
|
||||||
Response response = client.newCall(request).execute();
|
Response response = clientBuilder.build().newCall(request).execute();
|
||||||
String responseContent = response.body().string();
|
String responseContent = response.body().string();
|
||||||
WxError error = WxError.fromJson(responseContent);
|
WxError error = WxError.fromJson(responseContent);
|
||||||
if (error.getErrorCode() != 0) {
|
if (error.getErrorCode() != 0) {
|
||||||
@ -69,4 +69,5 @@ public class OkhttpMaterialUploadRequestExecutor extends MaterialUploadRequestEx
|
|||||||
return WxMpMaterialUploadResult.fromJson(responseContent);
|
return WxMpMaterialUploadResult.fromJson(responseContent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ public class OkhttpMediaImgUploadRequestExecutor extends MediaImgUploadRequestEx
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WxMediaImgUploadResult execute(String uri, File data) throws WxErrorException, IOException {
|
public WxMediaImgUploadResult execute(String uri, File file) throws WxErrorException, IOException {
|
||||||
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder().connectionPool(requestHttp.getRequestHttpClient());
|
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder().connectionPool(requestHttp.getRequestHttpClient());
|
||||||
//设置代理
|
//设置代理
|
||||||
if (requestHttp.getRequestHttpProxy() != null) {
|
if (requestHttp.getRequestHttpProxy() != null) {
|
||||||
@ -37,14 +37,16 @@ public class OkhttpMediaImgUploadRequestExecutor extends MediaImgUploadRequestEx
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
//得到httpClient
|
|
||||||
OkHttpClient client = clientBuilder.build();
|
|
||||||
|
|
||||||
RequestBody fileBody = RequestBody.create(MediaType.parse("multipart/form-data"), data);
|
RequestBody body = new MultipartBody.Builder()
|
||||||
RequestBody body = new MultipartBody.Builder().addFormDataPart("media", null, fileBody).build();
|
.setType(MediaType.parse("multipart/form-data"))
|
||||||
|
.addFormDataPart("media",
|
||||||
|
file.getName(),
|
||||||
|
RequestBody.create(MediaType.parse("application/octet-stream"), file))
|
||||||
|
.build();
|
||||||
|
|
||||||
Request request = new Request.Builder().url(uri).post(body).build();
|
Request request = new Request.Builder().url(uri).post(body).build();
|
||||||
|
Response response = clientBuilder.build().newCall(request).execute();
|
||||||
Response response = client.newCall(request).execute();
|
|
||||||
String responseContent = response.body().string();
|
String responseContent = response.body().string();
|
||||||
WxError error = WxError.fromJson(responseContent);
|
WxError error = WxError.fromJson(responseContent);
|
||||||
if (error.getErrorCode() != 0) {
|
if (error.getErrorCode() != 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user