1. 程式人生 > >Retrofit使用form-data方式的Post請求

Retrofit使用form-data方式的Post請求

將Post請求的資料放在form-data中,使用Retrofit框架的實現方式

前言:我們一般使用Retrofit進行Post的請求的時候都是把上傳的資料放在請求體中的,但是在上傳檔案等操作時會使用到form-data方式上傳資料。form-data表單資料

1.建立網路請求介面的兩種方式

//適用於資料量少的情況
@Multipart
@POST("app/user/login")
Call<JsonObject> UserLogin(@Part("username") RequestBody username, @Part("password") RequestBody password);
//推薦使用這種方式,把請求的資料集都放在map中,這樣統一處理起來非常的方便。
@Multipart
@POST("app/user/login")
Call<JsonObject> userLogin(@PartMap Map<String, RequestBody> requestBodyMap);

2.生成RequestBody

RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"),"this_is_username");
//比如可以這樣生成Map<String, RequestBody> requestBodyMap
//Map<String, String> requestDataMap這裡面放置上傳資料的鍵值對。 private static Map<String, RequestBody> generateRequestBody(Map<String, String> requestDataMap) { Map<String, RequestBody> requestBodyMap = new HashMap<>(); for (String key : requestDataMap.keySet()) { RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"
), requestDataMap.get(key) == null ? "" : requestDataMap.get(key)); requestBodyMap.put(key, requestBody); } return requestBodyMap; }

*剩下的操作都一樣

相關推薦

怎樣獲取form-data方式POST的資料

轉自:http://ju.outofmemory.cn/entry/201812 用x-www-form-urlencoded方式提交表單就可以正常繫結資料,但是用form-data方式提交就繫結不了: @Controller@RequestMapping("/tag"

【Android Net】Volley實現(multipart/form-dataPost請求

private void doInit(final Map<String, String> params, final File uploadFile) { String initUrl = "http://192.168.1.1:8080/cld/in

springMvc 完美解決 multipart/form-data 方式提交請求 在 Filter 中 ServletRequest.getParameter方法 獲取不到引數的問題

本文 只講使用不過多闡述原理(因為我也沒太深究),希望有熟知原理的朋友不吝分享 下面開始。 ------------------------------------------------------------------------------ 無聊的前言  但是還是得

使用multipart form-data方式post資料到伺服器

使用multipart/form-data方式提交資料與普通的post方式有一定區別。multipart/form-data的請求頭必須包含一個特殊的頭資訊:Content-Type,其值必須為multipart/form-data。另外還需要規定一個內容分割符

前端以form-data方式/raw方式傳送post請求的區別

POST請求@RequestParam: ① 用來處理(前端)Content-Type: 為 application/x-www-form-urlencoded或者form-data編碼的內容 ② 該註解有兩個屬性: value、required; value用來指定要傳入值的id名稱,requir

Retrofit使用form-data方式Post請求

將Post請求的資料放在form-data中,使用Retrofit框架的實現方式 前言:我們一般使用Retrofit進行Post的請求的時候都是把上傳的資料放在請求體中的,但是在上傳檔案等操作時

Post請求方式長度參數過長導致參數為空

cat 導致 edi time threads toc thread connect htm Post提交方式本身對於參數的長度沒有限制,HTTP協議也沒有限制。 可是今天在做一個web項目的時候碰到一個問題,當要提交的表單內容達到一定大小時,發現後臺代碼接收到的參數為

在vue中使用axios發送post請求,參數方式

var end urlencode image 數據 返回 resp cnblogs pos 由於後臺接收的參數格式為FormData格式, 在axios中參數格式默認為, 在傳參數前,將原先官方提供的格式 改為如下: axios({ url: ‘../../../

采用Post請求方式提交參數並導出excel

我們 false 但是 限制 put 數據 lba bsp 翻轉 一般情況下,我們都是采用get請求的方式導出excel。例如采用如下方式: var exportUrl = ‘/xxx;‘; window.open(exportUrl); 導出excel所需的邏輯參數拼接

HttpClient 的GET(帶參數)、POST請求方式,工具類方法

類方法 pre operator his socket ram 斷開 || -s /** * 連接/斷開操作 post方式 * @param url * @param json */ private boolean connOrDisconnOperator(Str

python flask裏 post請求,JSON數據獲取方式總結

out ren response 獲取 post task world! json數據 appid #!flask/bin/python #encodig=utf-8 # _*_ coding:utf-8 _*_ # Writer : byz # dateTim

Get,Post請求方式詳解

sta 改變 模型 結構 conf code 位置 abs boolean 一 原理區別 一般在瀏覽器中輸入網址訪問資源都是通過GET方式;在FORM提交中,可以通過Method指定提交方式為GET或者POST,默認為GET提交 Http定義了與服務器交互的不同

C#中Post請求的兩種方式發送參數鏈和Body的

連接 png ets return div 參數 try 發現 create POST請求 有兩種方式 一種是組裝key=value這種參數對的方式 一種是直接把一個字符串發送過去 作為body的方式 我們在postman中可以看到 sfdsafd sdfsdfds

提起Ajax請求方式(POST)

前言 => 是ES6中的arrow function x=>x+6 就相當於 function(x){ return x+6; } 正文 XMLHttpRequest a=new XMLHttpRequest(); a.open("POST",url,true); a.sen

WebApi中Post請求傳參時後端的接收方式

1.單引數 [FromBody]+變數方式(不推薦):如public string PostUser([FromBody] string user_id){} 由於我們的前端習慣用key/value的方式進行請求,而此法要求key為空,有點不三不四,程式碼不規範,故此不推薦。總不能都是你寫的

https 傳送get或post請求時忽略證書認證方式

原創地址:http://www.cnblogs.com/shipengzhi/archive/2012/08/22/2650953.html 在開發java時呼叫別人介面(這個介面還是https開頭的)過程中,需要認證你的證書,然而測試伺服器常常沒有一個(有效的)SSL證書。在你的客戶端連線測試伺

POST 請求中 multipart/form-data、 application/x-www-form-urlencoded 的區別

clas test 我們 style 兩個 分享圖片 content pla -type 以 Postman 為工具來看一下這兩個編碼類型的數據格式,假設我們需要傳輸的數據為 { "name": "test", "age": 18 }

Post請求form-data格式時請求返回500的問題

問題描述:測試反饋說系統所有的介面,採用post請求,資料格式用form-data時,所有的介面不能成功呼叫,但使用application/x-www-form-urlencoded或者application/json則沒有問題。使用Postman測試,響應如下: { "timestam

限定某個業務控制方法,只允許GET或POST請求方式訪問

可以在業務控制方法前,指明該業務控制方法只能接收GET或POST的請求 @Controller @RequestMapping(value="/user") public class UserAction{ @RequestMapping(value="/add",method=Requ

java POST請求兩種傳參方式JSON格式和表單格式

JSON格式: JSONObject jsonObject = new JSONObject();         jsonObject.put("Action", "action");        &n