mirror of
				https://gitee.com/binary/weixin-java-tools.git
				synced 2025-11-01 03:25:35 +08:00 
			
		
		
		
	#269 修复okhttp实现素材上传时的问题
This commit is contained in:
		| @ -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) { | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Binary Wang
					Binary Wang