@@ -167,17 +167,27 @@ public static Response post(String url, byte[] body, StringMap header, String co
167167 }
168168
169169 /**
170- * 文件上传 文件体为 字节数组
170+ * 批量文件上传
171171 */
172172 public static Response multipartPost (String url ,
173173 StringMap fields ,
174174 String name ,
175- String fileName ,
176- byte [] fileBody ,
177- String mimeType ,
175+ File [] files ,
178176 StringMap headers ) {
179- RequestBody file = RequestBody .create (MediaType .parse (mimeType ), fileBody );
180- return multipartPost (url , fields , name , fileName , file , headers );
177+ final MultipartBody .Builder mb = new MultipartBody .Builder ();
178+ for (File file : files ) {
179+ RequestBody fileBody = RequestBody .create (MediaType .parse (Constants .MULTIPART_MIME ), file );
180+ mb .addFormDataPart (name , file .getName (), fileBody );
181+ }
182+ if (fields != null ) {
183+ for (Map .Entry <String , Object > entry : fields .entrySet ()) {
184+ mb .addFormDataPart (entry .getKey (), entry .getValue ().toString ());
185+ }
186+ }
187+ mb .setType (MediaType .get ("multipart/form-data" ));
188+ RequestBody body = mb .build ();
189+ Request .Builder requestBuilder = new Request .Builder ().url (url ).post (body );
190+ return send (requestBuilder , headers );
181191 }
182192
183193 /**
@@ -188,10 +198,10 @@ public static Response multipartPost(String url,
188198 String name ,
189199 String fileName ,
190200 File fileBody ,
191- String mimeType ,
192201 StringMap headers ) {
193- RequestBody file = RequestBody .create (MediaType .parse (mimeType ), fileBody );
194- return multipartPost (url , fields , name , fileName , file , headers );
202+ RequestBody file = RequestBody .create (MediaType .parse (Constants .MULTIPART_MIME ), fileBody );
203+ Request .Builder requestBuilder = getBuilder (url , fields , name , fileName , file );
204+ return send (requestBuilder , headers );
195205 }
196206
197207
@@ -220,10 +230,9 @@ public static void asyncMultipartPost(String url,
220230 String name ,
221231 String fileName ,
222232 byte [] fileBody ,
223- String mimeType ,
224233 StringMap headers ,
225234 AsyncCallback cb ) {
226- RequestBody file = RequestBody .create (MediaType .parse (mimeType ), fileBody );
235+ RequestBody file = RequestBody .create (MediaType .parse (Constants . MULTIPART_MIME ), fileBody );
227236 asyncMultipartPost (url , fields , name , fileName , file , headers , cb );
228237 }
229238
@@ -235,10 +244,9 @@ public static void asyncMultipartPost(String url,
235244 String name ,
236245 String fileName ,
237246 File fileBody ,
238- String mimeType ,
239247 StringMap headers ,
240248 AsyncCallback cb ) {
241- RequestBody file = RequestBody .create (MediaType .parse (mimeType ), fileBody );
249+ RequestBody file = RequestBody .create (MediaType .parse (Constants . MULTIPART_MIME ), fileBody );
242250 asyncMultipartPost (url , fields , name , fileName , file , headers , cb );
243251 }
244252
@@ -280,26 +288,6 @@ private static Response post(String url, RequestBody body, StringMap header) {
280288 return send (requestBuilder , header );
281289 }
282290
283- /**
284- * 文件上传
285- *
286- * @param url 地址
287- * @param fields 字段信息 data part
288- * @param name 文件接受字段名
289- * @param fileName 文件名 可为空
290- * @param file 已包装的文件请求体
291- * @param headers 请求头 可为空
292- * @return 响应
293- */
294- private static Response multipartPost (String url ,
295- StringMap fields ,
296- String name ,
297- @ Nullable String fileName ,
298- RequestBody file ,
299- StringMap headers ) {
300- Request .Builder requestBuilder = getBuilder (url , fields , name , fileName , file );
301- return send (requestBuilder , headers );
302- }
303291
304292 /**
305293 * 后去文件上传类型 build
@@ -314,7 +302,6 @@ private static Response multipartPost(String url,
314302 private static Request .Builder getBuilder (String url , StringMap fields , String name , @ Nullable String fileName , RequestBody file ) {
315303 final MultipartBody .Builder mb = new MultipartBody .Builder ();
316304 mb .addFormDataPart (name , fileName , file );
317-
318305 if (fields != null ) {
319306 for (Map .Entry <String , Object > entry : fields .entrySet ()) {
320307 mb .addFormDataPart (entry .getKey (), entry .getValue ().toString ());
@@ -344,7 +331,8 @@ private static Response send(final Request.Builder requestBuilder, @Nullable Str
344331 response = CLIENT .newCall (requestBuilder .build ()).execute ();
345332 if (!response .isSuccessful ()) {
346333 int code = response .code ();
347- String msg = response .message ();
334+ String resMsg = response .body () != null ? response .body ().string () : "" ;
335+ String msg = response .message () + "," + resMsg ;
348336 response .close ();
349337 throw new OssException (code , msg );
350338 }
0 commit comments