android– 如何在OkHttpClient中将对象(即UserData)类型的列表添加到MultipartBody

android– 如何在OkHttpClient中将对象(即UserData)类型的列表添加到MultipartBody,第1张

概述我有一个ObjectList,我需要放入我的MultipartBody.Builder.I尝试使用.addFormDataPart的不同方法,但没有工作.这就是我将它放入请求的方式.任何帮助,将不胜感激.谢谢我在服务器上的JSON格式如下{"formData":[{"name":"string","value"

我有一个ObjectList,我需要放入我的Multipartbody.Builder.I尝试使用.addFormDataPart的不同方法,但没有工作.这就是我将它放入请求的方式.任何帮助,将不胜感激.谢谢

我在服务器上的JSON格式如下

 {      "formData": [        {          "name": "string",          "value": {            any-object(string,file,long....etc)          }        }      ],      "tripID": "string"    }

这就是我这样做的方式

private Requestbody getMultipartData(Object postData) {        Multipartbody.Builder formBody = new Multipartbody.Builder();        formBody.setType(Multipartbody.FORM);        ArrayList<UserData> arrayList = null;        if (postData instanceof OnboardPresenterImpl.TripRequest) {            OnboardPresenterImpl.TripRequest tripRequest = ((OnboardPresenterImpl.TripRequest) postData);            formBody.addFormDataPart("tripID", tripRequest.getTripID());            arrayList = tripRequest.getFormData();        }         if (arrayList != null && arrayList.size() > 0) {            for (int i = 0; i < arrayList.size(); i++) {                UserData userData = arrayList.get(i);                String value = userData.getValue().tolowerCase();                if (value.contains("/") && (value.contains(".png") ||                        value.contains(".jpeg") || value.contains(".jpg"))) {                    MediaType type = Util.getMediaType(value);                    file sourcefile = new file(value);                    if (sourcefile.exists()) {                        formBody.addFormDataPart(userData.getname(),                                sourcefile.getname(),Requestbody.create(type, sourcefile));                    }                } else {                    formBody.addFormDataPart(userData.getname(), value);                }            }        }       return formBody.build();    }

解决方法:

几天后,我找出了解决方案

String uploadMultiplefiles(API API, HashMap<String, ArrayList<file>> fileListMap)            throws IOException {        String responseS;        OkhttpClIEnt timeOut = getokhttpClIEnt(API.getTimeOut());        Multipartbody.Builder multipartBuilder = new Multipartbody.Builder()                .setType(Multipartbody.FORM);        int j = 0;        ArrayList<file> fileList;        for (Map.Entry<String, ArrayList<file>> entry : fileListMap.entrySet()) {            String key = entry.getKey();            fileList = entry.getValue();            multipartBuilder.addFormDataPart("data[" + j + "].name", key);            if (fileList != null) {                for (int i = 0; i < fileList.size(); i++) {                    file fileListRequest = fileList.get(i);                    if (fileListRequest.exists()) {                        String ext = CommonUtils.getExtension(fileListRequest.getname());                        /* Changing Media Type whether JPEG or PNG **/                        final MediaType MEDIA_TYPE = ext.endsWith("png") ? MEDIA_TYPE_PNG :                                ext.endsWith("jpg") ? MEDIA_TYPE_JPG : MEDIA_TYPE_JPEG;                        multipartBuilder.addFormDataPart("data[" + j + "].files[" + i + "]",                                fileListRequest.getname(),                                Requestbody.create(MEDIA_TYPE, fileListRequest));                    }                }            }            j++;        }        Requestbody requestbody = multipartBuilder.build();        Request.Builder requestBuilder = new Request.Builder()                .url(Objects.requireNonNull(API.getUrl()))                .post(requestbody);        buildheaders(requestBuilder);        Response response = timeOut.newCall(requestBuilder.build()).execute();        responseS = response.body().string();        Log.i(API.getname().name(), responseS);        return responseS;    }
总结

以上是内存溢出为你收集整理的android – 如何在OkHttpClient中将对象(即UserData)类型的列表添加到MultipartBody全部内容,希望文章能够帮你解决android – 如何在OkHttpClient中将对象(即UserData)类型的列表添加到MultipartBody所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1100786.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存