retrofit的請(qǐng)求方式總概(包含binary上傳文件方式)

<meta charset="utf-8">

一、正常的請(qǐng)求方式

使用retrofit做解析ApiServse中

@POST("")

Observable<需要解析實(shí)體類>getList2(@Header("User-Agent") String s);//括號(hào)中請(qǐng)求頭可為空

Activity中

Observable list = getRetrofit("http://www.xxx.com/").create(ApiService.class)

.getList2("rxl");//如果上面請(qǐng)求頭為空這個(gè)括號(hào)也為空

getNetData(list);

二吁朦、動(dòng)態(tài)傳值方式

使用retrofit做解析ApiServse中

@POST("{list}/{newId}/{page}-10.html")

Observable<需要解析實(shí)體類> getList(@Header("User-Agent") String s,

@Path("list") String list,@Path("newId") String newId,@Path("page")int page);

Activity中

Observable list = getRetrofit("http://www.xxxx.com/").create(ApiService.class)

.getList("rxl","list","T134",0);

getNetData(list);

三、拼接參數(shù)提交方式

1尿这、Form表單正常的提交方式

使用retrofit做解析ApiServse中

@FormUrlEncoded

@POST("")

Observable<需要解析實(shí)體類> withParams(@Field("createCollegeId") String createCollegeId,@Field("loginName")String loginName,@Field("password")String password);

Activity中

Observable observable = getRetrofit("http://www.xxx.com/").create(ApiService.class)

.withParams("73","15100133517","a12345");

getNetData(observable);

2撞羽、map表單提交方式

使用retrofit做解析ApiServse中

@FormUrlEncoded

@POST("")

Observable<需要解析實(shí)體類> withMap(@FieldMap Map params);

Activity中

final Map params =new HashMap<>();

params.put("createCollegeId","73");

params.put("loginN","15100133517");

params.put("password","a12345");

Observable observable = getRetrofit("http://www.xxx.com/").create(ApiService.class)

.withMap(params);

getNetData(observable);

四认罩、帶請(qǐng)求體的請(qǐng)求方式(body以json形式傳入)

使用retrofit做解析ApiServse中

@POST(".")

Observable <需要解析實(shí)體類> getData(@Body RequestBody requestBody);

Activity中

MediaType JSON = MediaType.parse("application/json; charset=utf-8");

RequestBody body = RequestBody.create(JSON,"{"userId":"aadc2d9fe76f4b89bf37ca738e23eafe","channelId":"b9240eee3b0211e8b64c00163e30445d","cursor": 0}");

Observable observable = getRetrofit("http://www.xxx.com/").create(ApiService.class)

.withParams(body);

getNetData( body);

五、上傳文件

普通表單的上傳文件

    File file = new File(fileUrl); 
    RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
    MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), requestFile);

@Multipart
@POST("xxxxx")
rx.Observable<ImageLoagBean> uploadFile(@Part MultipartBody.Part file, @Header("fileName")String
fileName, @Header("tokenId")String tokenId);

表單的方式上傳文件攜帶參數(shù)

RequestBody block = RequestBody.create(MediaType.parse("text/plain"), "client");
RequestBody token = RequestBody.create(MediaType.parse("text/plain"),String.valueOf(Hawk.get(AppConfig.Token,"")));

/**
* 上傳文件
*/
@Multipart
@POST("system/webservice/file/upload")
rx.Observable<UpLoadFileBean> uploadFile(@Part MultipartBody.Part file, @Part("token") RequestBody token ,
@Part("visitor_id") RequestBody visitor_id, @Part("block") RequestBody block );

binary方式上傳

這種方式是沒(méi)有鍵值對(duì)的與表單上傳的方式不同掰担,文件以二進(jìn)制的方式直接放到body里進(jìn)行上傳
客戶端接口代碼


image.png

客戶端代碼實(shí)現(xiàn)


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末汇陆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子带饱,更是在濱河造成了極大的恐慌毡代,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勺疼,死亡現(xiàn)場(chǎng)離奇詭異教寂,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)执庐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門酪耕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人轨淌,你說(shuō)我怎么就攤上這事迂烁。” “怎么了递鹉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵盟步,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我躏结,道長(zhǎng)址芯,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮谷炸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘禀挫。我一直安慰自己旬陡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布语婴。 她就那樣靜靜地躺著描孟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪砰左。 梳的紋絲不亂的頭發(fā)上匿醒,一...
    開(kāi)封第一講書(shū)人閱讀 51,775評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音缠导,去河邊找鬼廉羔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛僻造,可吹牛的內(nèi)容都是我干的憋他。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼髓削,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼竹挡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起立膛,我...
    開(kāi)封第一講書(shū)人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤揪罕,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后宝泵,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體好啰,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年鲁猩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坎怪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡廓握,死狀恐怖搅窿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情隙券,我是刑警寧澤男应,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站娱仔,受9級(jí)特大地震影響沐飘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一耐朴、第九天 我趴在偏房一處隱蔽的房頂上張望借卧。 院中可真熱鬧,春花似錦筛峭、人聲如沸铐刘。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)镰吵。三九已至,卻和暖如春挂签,著一層夾襖步出監(jiān)牢的瞬間疤祭,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工饵婆, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勺馆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓啦辐,卻偏偏與公主長(zhǎng)得像谓传,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子芹关,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容