久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

使用 @multipart 改造 @body 有問題

Retrofit @body with @multipart having Issue(使用 @multipart 改造 @body 有問題)
本文介紹了使用 @multipart 改造 @body 有問題的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

服務參數:

{"id":"1","name":"vishal","image/file":""} 

當時我的RetrofitAPI

@Multipart
@POST("webservice")
Call<SignUpResp> loadSignupMultipart(@Part("description") RequestBody description, @Part MultipartBody.Part file, @QueryMap HashMap<String, String> params);

案例 2.(我有問題的地方)與 @Body 類<UploadwithImage>

{
    "methodName":"submitLevel1Part2Icon",
    "userid":"150",
    "headerData":{
        "fiction":{
            "icon_type":"1",
            "icon_id":"3"},
        "nonfiction":{
            "icon_type":"2",
            "icon_id":"4"},
        "relation":{
            "icon_type":"3",
            "icon_id":"0",
            "name":"Ronak",
            "relative_image":"<File>",
            "relation_id":"3"},
        "self":{
            "icon_type":"4",
            "icon_id":"0"}
    }
}

我正在嘗試這個 API

 @Multipart
 @POST("webservice")
 Call<SubmitLevel1Part2IconResp> loadLevel1halfIconswithImage(@Part("description") RequestBody description, @Part MultipartBody.Part file, @Body UploadwithImage uploadImage);

Java 端

    /**
     * code for multipart
     */
     // create RequestBody instance from file
     RequestBody requestFile =  RequestBody.create(MediaType.parse("multipart/form-data"), fileUpload);

     // MultipartBody.Part is used to send also the actual filename
     MultipartBody.Part body =  MultipartBody.Part.createFormData("methodName[headerData][relation][relative_image]", fileUpload.getName(), requestFile);

     // add another part within the multipart request
     String descriptionString = "hello, this is description speaking";
     RequestBody description = RequestBody.create(MediaType.parse("multipart/form-data"), descriptionString);

    call = service.loadLevel1halfIconswithImage(description, body, levelOneHalfIcons);

我不知道為什么,但它返回如下錯誤:

I don't know why but it returns error like:

"@Body 參數不能與表單或多部分編碼一起使用"

"@Body parameters cannot be used with form or multi-part encoding"

我們將不勝感激.

推薦答案

把你的方法改成

@Multipart
@POST("users/{id}/user_photos")
Call<models.UploadResponse> uploadPhoto(@Path("id") int userId, @PartMap Map<String, RequestBody> params);

現在創建您的請求參數,

Now to create your request parameters,

//All the String parameters, you have to put like
Map<String, RequestBody> map = new HashMap<>();
map.put("methodName", toRequestBody(methodName));
map.put("userid", toRequestBody(userId));
map.put("relation", toRequestBody(relation));
map.put("icon_type", toRequestBody(iconType));
map.put("icon_id", toRequestBody(iconId));
map.put("name", toRequestBody(name));
map.put("relation_id", toRequestBody(relationId));

//To put your image file you have to do
File file = new File("file_name");
RequestBody fileBody = RequestBody.create(MediaType.parse("image/png"), file);
map.put("relative_image"; filename="some_file_name.png"", fileBody);

// This method  converts String to RequestBody
public static RequestBody toRequestBody (String value) {
    RequestBody body = RequestBody.create(MediaType.parse("text/plain"), value);
    return body ;
}

//To send your request
call = service.loadLevel1halfIconswithImage(description, params);

如果您不想使用 PartMap,您可以簡單地將它們作為參數傳遞.檢查我的答案 https://stackoverflow.com/a/37052548/1320616 以獲取有關通過請求發送圖像文件的一些線索.

In case you do not want to use PartMap, you can simply pass them as parameters. Check my answer https://stackoverflow.com/a/37052548/1320616 to get some clue on sending image file with request.

這篇關于使用 @multipart 改造 @body 有問題的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

IncompatibleClassChangeError after updating to Android Build Tools 25.1.6 GCM / FCM(更新到 Android Build Tools 25.1.6 GCM/FCM 后出現 IncompatibleClassChangeError)
How to get current flavor in gradle(如何在 gradle 中獲取當前風味)
How to fix quot;unexpected element lt;queriesgt; found in lt;manifestgt;quot; error?(如何修復“意外元素lt;查詢gt;在“清單中找到錯誤?)
Multi flavor app based on multi flavor library in Android Gradle(基于 Android Gradle 中多風味庫的多風味應用)
Android dependency has different version for the compile and runtime(Android 依賴在編譯和運行時有不同的版本)
Transitive dependencies for local aar library(本地 aar 庫的傳遞依賴)
主站蜘蛛池模板: 一级黄色毛片 | 成人欧美一区二区三区色青冈 | 黄色毛片视频 | 亚洲成人久久久 | 欧美性成人 | 91免费观看 | 欧美精品tv | 日韩在线国产精品 | 亚洲激情视频在线 | 欧美一级片在线观看 | av影音资源| 99亚洲| 国内精品久久久久久久 | 一级免费a | 国产午夜高清 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 成人3d动漫一区二区三区91 | 国产精品69久久久久水密桃 | 人人澡人人射 | 欧美 中文字幕 | 免费在线观看一区二区 | 久久精品久久久久久 | 综合久久av | 老司机午夜性大片 | 91精品在线观看入口 | www.av在线| 黄色av一区 | 99爱在线| 少妇黄色 | 91欧美精品成人综合在线观看 | 久久久久久久久久久高潮一区二区 | 97人人爱 | 国产精品成人一区 | 亚洲精品久久久久久国产精华液 | 久久成人免费 | 欧美日韩精品一区 | 亚洲一区二区三区免费在线 | 久久精品中文字幕 | 综合国产 | 黄色一级大片在线免费看产 | 中文字幕在线观看一区 |