retrofit網路請求框架

2021-07-23 03:18:41 字數 3119 閱讀 8577

android studio可引用gradle compile 整合retrofit

compile 'com.squareup.retrofit2:retrofit:2.1.0'
首先建立乙個inte***ce請求介面

註解對應的包如下

import retrofit2.http.path;以下請求介面

inte***ce githubapi//contributors")

callcontributorsby******getcall(@path("owner") string own,@path("repo") string repo);

}

上面這段**,@get()註解中,有用{},對應引數上註解@path。

下面呼叫**

//例項retrofit,retrofit採用的是builder模式

retrofit retrofit=new retrofit.builder()

.baseurl("")

.build();

//呼叫create,讓retrofit去實現我們所建立的inte***ce

githubapi repo=retrofit.create(githubapi.class);

call

responsebodycall = repo.contributorsby******getcall("square","retrofit");

retrofit retrofit=new retrofit.builder()

.baseurl("")

.build();

githubapi repo=retrofit.create(githubapi.class);

call

responsebodycall = repo.contributorsby******getcall("square","retrofit");

//請求網路,並返回response

responsebodycall.enqueue(new callback() .gettype());

if (con!=null)

}else

} catch (ioexception e)

}@override

public void onfailure(call

call, throwable t)

});

android studio首先需要再增加乙個依賴

//這個依賴,是retrofit整合了gson,可用於直接轉換為實體類,無需開發者解析

compile 'com.squareup.retrofit2:converter-gson:2.0.1'

square提供了多種解析json的依賴庫

gson: compile 'com.squareup.retrofit2:converter-gson:2.0.1'

jackson: compile 'com.squareup.retrofit2:converter-jackson:2.0.1'

moshi: compile 'com.squareup.retrofit2:converter-moshi:2.0.1'

protobuf: compile 'com.squareup.retrofit2:converter-protobuf:2.0.1'

wire: compile 'com.squareup.retrofit2:converter-wire:2.0.1'

****** xml: compile 'com.squareup.retrofit2:converter-******xml:2.0.1'

scalars (primitives, boxed, and

string): compile 'com.squareup.retrofit2:converter-scalars:2.0.1'

修改介面定義

//需要新增依賴 compile 'com.squareup.retrofit2:converter-gson:2.0.1',

//這是retrofit的轉換器,內部整合了gson

//自動解析json將其轉換為實體類

@get("repos///contributors")

call

>getcontributors(@path("owner")

string

own,@path("repo")

string

repo);

可以看到有一點不同,就是返回值中的泛型定義直接改為實體類集合

retrofit的build增加了gson轉換器

retrofit retrofit=new retrofit.builder()

.baseurl("")

//新增gson轉換器,直接轉換為實體類

.addconverte***ctory(gsonconverte***ctory.create())

.build();

實際呼叫展示

retrofit retrofit=new retrofit.builder()

.baseurl("")

//新增gson轉換器,直接轉換為實體類

.addconverte***ctory(gsonconverte***ctory.create())

.build();

githubapi repo=retrofit.create(githubapi.class);

call

> responsebodycall = repo.getcontributors("square","retrofit");

responsebodycall.enqueue(new callback>()

}else

}@override

public void onfailure(call

> call, throwable t)

});

Retrofit網路請求

retrofit 一 特點 效能最好,處理最快 使用rest api時非常方便 傳輸層預設就使用okhttp 支援nio 擁有出色的api文件和社群支援 速度上比volley更快 如果你的應用程式中整合了okhttp,retrofit缺省會使用okhttp處理其他網路層請求。預設使用gson 二 使...

快捷實現網路請求Retrofit

第一步,在 android studio目錄下build.gradle中新增 compile com.squareup.retrofit2 retrofit insert latest version 第二步,建立介面api,demoapi工具類 demoapi api util public cl...

retrofit簡單的網路請求

目前retrofit速度最快,接下來是okhttp,最後是volley。定義乙個介面 public inte ce service 現在是模擬get請求,get後面帶的引數是網頁的子目錄,比如,www.baidu.com api cook list,那get後面就帶 api cook list 而b...