Private Static voidUploadFinalContext Context,Final inttype, File logFile) {Map<string, requestbody> map =NewHashmap<>(); if(LogFile! =NULL&& logfile.length () > 0) {map.put (Parsemapkey ("File", Logfile.getname ()), Parserequestbody (LogFile)); } apifactory.getinstance (). Getapiservice (). Uploadlog (map). Compose (rxschedulers.<List<String>>combine ()). Subscribe (NewRxsubscriber1<list<string>>() {@Override Public voidOnError (apiexception e) {LOGUTIL.W ("Upload onfailure:"); } @Override Public voidOnNext (list<string>filepaths) { if(! Commonutil.isempty (filepaths))//Upload Successful{LOGUTIL.W ("Upload succ,filepath:" + filepaths.get (0)); Debughelp.printline ("Upload succ,filepath:" + filepaths.get (0)); } File dir; if(Type = =upload_type_function) {dir=Logcollectorutility.getexternaldir (context, constants.function_dir_name); } Else{dir=Logcollectorutility.getexternaldir (context, constants.dir_name); } filetozip.recursiondeletefile (dir); } }); } Public Staticrequestbody parserequestbody (file file) {returnRequestbody.create (Mediatype.parse ("Multipart/form-data"), file); } Public Staticstring Parsemapkey (String key, String fileName) {returnKey + "\"; Filename=\ "" +FileName; }
/** * Upload log * * @return * * @Multipart @POST ("v1/app/exception") observable< Responsebean<list<string>>> Uploadlog (@PartMap map<string, requestbody> Map);
Android uses Retrofit2 RxJava file upload