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