1. 程式人生 > >android網路框架Retrofit使用記錄

android網路框架Retrofit使用記錄

Retrofit的GET請求:

情景:在新聞app中要獲取某個使用者收藏的文章資訊。
這個請求我們使用的是get請求,使用者的授權資訊放到請求的Headers中;其他引數比如offset-偏移起始位置,limit - 返回最多結果數等引數都放在 LinkedHashMap集合中。

第一步:初始化retrofit物件

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(API_URL)// http://dev1.baidu.com:4000
            .addConverterFactory(ScalarsConverterFactory.create
()) .addConverterFactory(GsonConverterFactory.create()) .build();

第二步:攜帶引數賦值

DataBean dataBean = AppUtils.getClassFromJson(...)
String headStr = dataBean.getToken_type() + " " + dataBean.getAccess_token();
LinkedHashMap<String, Integer> parms = new LinkedHashMap<>();
parms.put("offset"
, offset); parms.put("limit", limit); parms.put("simplemode", simplemode == true ? 1 : 0);

第三步:建立請求介面RequestCollectList

public interface RequestCollectList {
    @GET("/v1.0/user/favorite/list")
    Call<RspCollectList> contributors(@Header("Authorization") String authorization, @QueryMap Map<String, Integer> parms);
}

第四步:建立返回json資料的Bean類RspCollectList
1、利用Postman傳送請求拿到返回json資料;
postman一款優秀的Chrome外掛
2、複製json資料,通過GsonFormat外掛自動生成Bean類;
這樣就輕鬆生成了返回的JavaBean類。
第五步:傳送請求

Call<RspCollectList> call = request.contributors(headStr, parms);
call.enqueue(new Callback() {
            @Override
            public void onResponse(Call call, Response response) {
                if (response.body() == null) {
                } else {
                response.body();// body節點中是返回的資料
                }
            }

            @Override
            public void onFailure(Call call, Throwable t) {
            }
        });

到此一個GET請求大致完畢了。

Retrofit的POST請求:

情景:在新聞app某個頁面中要點選收藏按鈕跟伺服器互動實現收藏功能。
該請求事件我們使用POST請求,這個請求中要攜帶使用者的授權資訊放到請求的Headers中,通過post攜帶一個json字串(欄位1:content_type;欄位2:content_id)到伺服器。
第一步:retrofit物件生成與上面get請求獲取方式一樣;
第二步:通過postman獲取返回資料並用GsonFormat生成JavaBean類RspSaveCollectArticle;
其中post請求攜帶字串如下:

[{"content_type":0, "content_id":32889}]

postman標籤選擇如下
第三步:建立請求介面RequestSaveCollectArticle

public interface RequestSaveCollectArticle {
    @Headers("content-type:application/json")
    @POST("/v1.0/user/favorite/save")
    Call<RspSaveCollectArticle> contributors(@Header("Authorization") String authorization, @Body RequestBody jsonBody);
}

第四步:引數生成
使用者授權資訊同上;
被攜帶json資料建立如下

RspSaveCollectArticle.DataBean favorite = new RspSaveCollectArticle.DataBean();
favorite.setContent_type(content_type);
favorite.setContent_id(content_id);
RequestBody jsonRequestBody = RequestBody.create(MediaType.parse("application/json"), "[" + AppUtils.getJsonFromClass(favorite) + "]");

第五步:請求

Call<RspSaveCollectArticle> call = request.contributors(headStr, jsonRequestBody);
call.enqueue(new Callback() {
            @Override
            public void onResponse(Call call, Response response) {
                if (response.body() == null) {
                } else {
                response.body();// body節點中是返回的資料
                }
            }
            @Override
            public void onFailure(Call call, Throwable t) {
            }
        });

關於postman和GsonFormatter如何使用可以先查詢網站,後續可能會寫相關文章介紹。

相關推薦

android網路框架Retrofit使用記錄

Retrofit的GET請求: 情景:在新聞app中要獲取某個使用者收藏的文章資訊。 這個請求我們使用的是get請求,使用者的授權資訊放到請求的Headers中;其他引數比如offset-偏移起始位置,limit - 返回最多結果數等引數都放在 Linke

Android網路框架Retrofit的使用

Retrofit2網路框架的使用 1.配置 api 'com.squareup.retrofit2:retrofit:2.1.0' api 'cohttp://blog.csdn.net/vipzjyno1/article/details/21039349/m.squareup.retrof

android網路框架Retrofit——簡介,使用的jar包

簡介  Retrofit是github上,由square發起的開源專案,使用起來非常的簡介,可以通過非常簡單的註解方式來晚上網路訪問,而且具有靈活的配置,基本可以滿足我們的專案需求,可以在andorid專案的網路方面進行快速開發。 jar包 必須:          

Android開源網路框架Retrofit(入門篇)

Restful風格介面基本成了業界主流,Retrofit框架也大火特火,最近專案中也決定更新換代,採用Retrofit。本著學習之餘,也對接下來的學習者有一些幫助,於是寫了本文,主要的內容是對官網內容的一個翻譯和補充解釋。 plus:本文假設你對於基

Android網路框架初步嘗試

最近面試了很多公司,感慨良多,面試官都強調要多寫技術文章,多閱讀原始碼。仔細想想確實如此,想成為一名好的Android工程師,如果沒有原始碼閱讀,怎麼能寫出好的程式碼那。 因為是第一篇文章,肯定想拿出一點好東西帶大家分享。想想看自己也就寫過一個網路框架可以拿出來談談。 首先介紹我這個

教你寫Android網路框架之基本架構

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android網路框架Retrofit2使用封裝:Get/Post/檔案上傳/下載

背景 Android開發中的網路框架經過多年的發展,目前比較主流的就是Retrofit了,Retrofit2版本出現也有幾年了,為了方便使用,特封裝了一些關於Retrofit2的程式碼,分享給大家。 框架主要包括: Get請求 Post請求 檔案上傳 檔案下載

Android網路框架Volley

                Volley是Google I/O 2013推出的網路通訊庫,在volley推出之前我們一般會選擇比較成熟的第三方網路通訊庫,如:他們各有優劣,之前個人則比較喜歡用android-async-http, 如今Google推出了官方的針對Android平臺上的網路通訊庫,能使網路

教你寫Android網路框架之Request Response類與請求佇列

                我正在參加部落格之星,點選這裡投我一票吧,謝謝~   前言在教你寫Android網路框架之基本架構一文中我們已經介紹了SimpleNet網路框架的基本結構,今天我們就開始從程式碼的角度來開始切入該網路框架的實現,在剖析的同時我們會分析設計思路,以及為什麼要這樣做,這樣做的好處是

Android網路框架的選擇

今年已經收是2018年了,Android P 預覽版已經推出來了。這裡只是想說明一下技術的更新太快了。 下面說正題,目前我們在Android中可選擇的網路框架主要有以下幾種: Volley OKhttp Retrofit 這三種,但是要說明一下: 首

必須知道的Android網路框架大全!值得一看良心文章!

導語    大通常在 Android 中進行網路連線一般使用 Scoket 和 HTTP兩種方式。而 HTTP 請求方式比 Scoket 多得多,HTTP 請求一般採用原生的 HttpClient 和 HttpUrlConnection 的兩種網路訪問方式。可是在 Andro

Android網路框架Volley(實戰篇)

之前講了ym—— Android網路框架Volley(體驗篇),大家應該瞭解了volley的使用,接下來我們要看看如何把volley使用到實戰專案裡面,我們先考慮下一些問題: 從上一篇來看 mQueue 只需要一個物件即可,new RequestQueue物件對資源一種浪費

Android網路框架:OKHttp原始碼簡單解析(一)

這是第一次解析原始碼並把它寫出來,在之前,我一直以為只要會用別人的輪子就好,做出實際的效果就行,對看原始碼對自己的能力提升不以為然。後來偶然聽到一句話:看別人的DEMO,你就可以會用輪子,但是要想用好輪子,還是得看原始碼。我覺得看原始碼有兩個方面的好處: 1

Android 網路框架_常用的網路框架

看了張哥(stormzhang)的部落格之後,深有感觸,又讓我感慨了一番,而且發現張哥的部落格英文跟漢字之間是有空格的,數字跟漢字之間也有空格,看起來很舒服很美觀,張哥真的是把每一個細節都做的很好,所以身為草根開發者的我,也要學習。附上張哥部落格的一部分截圖:

Android 網路框架之Retrofit2使用詳解及從原始碼中解析原理

就目前來說Retrofit2使用的已相當的廣泛,那麼我們先來了解下兩個問題: 1 . 什麼是Retrofit? Retrofit是針對於Android/Java的、基於okHttp的、一種輕量級且安全的、並使用註解方式的網路請求框架。 2 . 我們為什麼要

Android網路框架設計

一、構建思路 1、構建一個Request用來封裝 HTTP請求的型別、請求頭引數、請求體、優先順序、返回型別、等一些必要的屬性。 這個Request定義為抽象的,使得使用者可以擴充套件。 2、構建一個佇列(BlockingQueue) 用來存貯這些請求,使用

Android網路框架volley學習(三)底層網路請求分析

相關文章 前面我們分析了一下volley的基本用法及總體工作流程,由於volley是一個網路請求框架,所以本篇我們分析一下它的底層網路請求。 volley原始碼說長不長,說短不短,也有幾十個類,該從哪裡開始分析呢?我們從最基本的開始分析,還記得一開始進行

轉載-ym—— Android網路框架Volley(體驗篇)

Volley是Google I/O 2013推出的網路通訊庫,在volley推出之前我們一般會選擇比較成熟的第三方網路通訊庫,如: 他們各有優劣,之前個人則比較喜歡用android-async-http, 如今Google推出了官方的針對Android平臺上的網路通訊庫,能使網路通訊更快

(轉)ym—— Android網路框架Volley(實戰篇)

從上一篇來看 mQueue 只需要一個物件即可,new RequestQueue物件對資源一種浪費,我們應該在application,以及可以把取消請求的方法也在application進行統一管理,看以下程式碼: [java] view plaincopyprint?

android網路框架的封裝——volley

本文主要用程式碼給出如何對volley進行封裝制定出自己的request,實現專案工程中自己的網路請求框架,主要參考的是郭大神的部落格http://blog.csdn.net/guolin_blog/article/details/17612763 首先給出自定義的Requ