Okhttp的簡(jiǎn)單使用

??????? 現(xiàn)在市面上比較火熱的Android網(wǎng)絡(luò)框架,就我知道的沙廉,volley拘荡,okhttp,retrofit+rxjava撬陵,當(dāng)然rxjava不算是網(wǎng)絡(luò)框架珊皿,只是配合retofit使用更為方便网缝,volley是我使用得比較多的一個(gè)網(wǎng)絡(luò)框架,但是用他來(lái)做輕量的數(shù)據(jù)請(qǐng)求自是沒(méi)問(wèn)題蟋定,但是在下載和上傳文件上粉臊,似乎就會(huì)暴露一些問(wèn)題,啥問(wèn)題我也不知道驶兜,因?yàn)槲抑皇遣锁B(niǎo)扼仲,這些東西也是一個(gè)自己的理解,如果有錯(cuò)誤的地方抄淑,勿噴屠凶。

???????? 下面就進(jìn)入正題,本來(lái)我是想使用retrofit肆资,但是我又想一口吃成胖子矗愧,對(duì)于rxjava的學(xué)習(xí)上堵住,所以轉(zhuǎn)戰(zhàn)okhttp郑原,以下則是我對(duì)okhttp的一些理解和使用:

????????? 因?yàn)槲矣玫氖茿ndroid Studio贱枣,所以首先依賴

compile'com.squareup.okhttp3:okhttp:3.4.2'

? ,依賴完以后就可以使用了颤专,首先:

private OkHttpClient okHttpClient;

private Request request;

private Call call;

因?yàn)椴还苁莋et請(qǐng)求,post請(qǐng)求钠乏,還是上傳下載文件栖秕,都需要這三個(gè),總不能一個(gè)文件就新建一個(gè)對(duì)象吧晓避,然后我在構(gòu)造函數(shù)中實(shí)例化了

public Http OkHttp() {

okHttpClient=new OkHttpClient();

}

簇捍,get請(qǐng)求如下:

public Call getOkhttp() {

???????????? request=new Request.Builder()

??????????????????????????????????????? ? ? ? ? ? ? ? .url(url)

??????????????????????????? ? ? ? ? ? ? ? ??????????? .build();

????????????? call=okHttpClient.newCall(request);

????????????? return call;

}

我是把call直接返回出來(lái),這樣我用著舒服些俏拱, 正規(guī)寫(xiě)法如下:

public void getOkhttp() {

request=newRequest.Builder()

.url(url)

.build();

call=okHttpClient.newCall(request);

call.enqueue(new Callback() {

@Override

public void onFailure(Call call,IOException e) {

//這里面試請(qǐng)求錯(cuò)誤調(diào)用

}

@Override

public void onResponse(Call call,Response response) throws IOException{

//這是是請(qǐng)求成功返回的

//得到返回信息則是 response.body().string()

}

});

}

暑塑,post請(qǐng)求如下:

public Call postOkhttp(RequestBody requestBody) {

request=new Request.Builder()

.url(url)

.post(requestBody)

.build();

call=okHttpClient.newCall(request);

return call;

}

鍵值對(duì)我是將其提取出來(lái),定義如下:

RequestBody requestBody=new FormBody.Builder()

.add("key","valuse")

.build();

add方法則是往里面加入請(qǐng)求體锅必,使用還是很簡(jiǎn)單的事格,

上傳文件如下:

public Call FileOkhttp(String filename,String key) {

File file=new File(Environment.getExternalStorageDirectory(), filename);

RequestBody fileBody=RequestBody.create(MediaType.parse("application/octet-stream"),file);

RequestBody requestBody=new MultipartBody.Builder()

?????????????????????????????????????????????????????????????????????????????????????? .setType(MultipartBody.FORM)

?????????????????????????????????????????????????????????????????????????????????????? .addPart(Headers.of("Content-Disposition","form-data; name=\"username\""),

??????????????????????????????????????????????????????????????????????????????????????? RequestBody.create(null, key))//上傳文件名

??????????????????????????????????????????????????????????????????????????????????????? .addPart(Headers.of("Content-Disposition","form-data; name=\"mFile\"; filename =\"wjd.mp4\""),fileBody)

???????????????????????????????????????????????????????????????????????????????????????? .build();

request=new Request.Builder()

???????????????????????????????????????? .url(url)

????????????????????????????????????????? .post(requestBody)

?????????????????????????????????????????? .build();

call=okHttpClient.newCall(request);

return call;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市搞隐,隨后出現(xiàn)的幾起案子驹愚,更是在濱河造成了極大的恐慌,老刑警劉巖劣纲,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逢捺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡癞季,警方通過(guò)查閱死者的電腦和手機(jī)劫瞳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)倘潜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人志于,你說(shuō)我怎么就攤上這事涮因。” “怎么了恨憎?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵蕊退,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我憔恳,道長(zhǎng)瓤荔,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任钥组,我火速辦了婚禮输硝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘程梦。我一直安慰自己点把,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布屿附。 她就那樣靜靜地躺著郎逃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挺份。 梳的紋絲不亂的頭發(fā)上褒翰,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音匀泊,去河邊找鬼优训。 笑死,一個(gè)胖子當(dāng)著我的面吹牛各聘,可吹牛的內(nèi)容都是我干的揣非。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼躲因,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼早敬!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起大脉,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤搁嗓,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后箱靴,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體腺逛,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年衡怀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棍矛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片安疗。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖够委,靈堂內(nèi)的尸體忽然破棺而出荐类,到底是詐尸還是另有隱情,我是刑警寧澤茁帽,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布玉罐,位于F島的核電站,受9級(jí)特大地震影響潘拨,放射性物質(zhì)發(fā)生泄漏吊输。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一铁追、第九天 我趴在偏房一處隱蔽的房頂上張望季蚂。 院中可真熱鬧,春花似錦琅束、人聲如沸扭屁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)料滥。三九已至,卻和暖如春艾船,著一層夾襖步出監(jiān)牢的瞬間葵腹,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工丽声, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人觉义。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓雁社,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親晒骇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理洪囤,服務(wù)發(fā)現(xiàn)徒坡,斷路器,智...
    卡卡羅2017閱讀 134,629評(píng)論 18 139
  • //get 請(qǐng)求 private void get() { OkHttpClient okHttpClient =...
    NeWolf閱讀 614評(píng)論 0 0
  • 參考Android網(wǎng)絡(luò)請(qǐng)求心路歷程Android Http接地氣網(wǎng)絡(luò)請(qǐng)求(HttpURLConnection) 一...
    合肥黑閱讀 21,248評(píng)論 7 63
  • 參考o(jì)khttp官方wiki https://github.com/square/okhttp/wiki/Call...
    WangGavin閱讀 7,147評(píng)論 0 1
  • 五月靜音瘤缩。 丁香花的淡紫色喇完,相對(duì)某些聲色大得多的紫色伴找,已經(jīng)是娓娓低語(yǔ)群山的起伏調(diào)至靜音慰枕。雷聲不再呵斥寂靜。月光在坎...
    王獨(dú)樹(shù)閱讀 311評(píng)論 0 0