久久久久久久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 庫的傳遞依賴)
主站蜘蛛池模板: 欧美视频一区二区三区 | wwwxxx日本在线观看 | 欧一区 | 色999视频 | 99热精品久久 | 超碰精品在线 | 国产精品激情 | 亚洲美女av网站 | 五月激情六月婷婷 | 久久久久久免费毛片精品 | 福利视频日韩 | 国产69精品久久99不卡免费版 | 国产四虎| 亚洲色图网址 | 亚洲 91| 欧美一级二级在线观看 | 日韩1区2区| av免费在线观看网站 | 男女视频免费 | 亚洲视频免费在线观看 | 九九热免费视频在线观看 | av在线成人 | 91精品国产综合久久久密闭 | 99热免费在线 | 成年人在线观看视频 | 亚洲欧美日韩网站 | 色资源在线 | 91国产在线视频在线 | 色欧美综合 | 亚洲精品久久久久久一区二区 | 毛片在线免费 | 麻豆av在线 | 大陆一级毛片免费视频观看 | 欧美一区二区三区在线免费观看 | 免费高潮视频95在线观看网站 | 久久精品欧美一区二区三区不卡 | 成人精品国产 | 国产精品国产a级 | 日韩三级电影在线看 | 国产情品| 一区二区三区小视频 |