如何使用Retrofit獲取服務器返回來的JSON字符串


有關Retrofit的簡單集成攻略,大家可以參考我此前的一篇文章
有關更多API文檔的查閱請大家到Retrofit官網查看。

在大家使用網絡請求的時候,往往會出現一種情況:需要在拿到服務器返回來的JSON字符串,而Retrofit會默認將Json解析,而又沒有直接暴露出拿到Json字符串的方法,經過在網上一定的查閱,再次給大家一個簡單的辦法,就能夠拿到Json字符串。

以下是我們在Api接口中的定義方法

1
2
3
4
5
6
7
//以前我們使用我們定義好的POJO或javabean類作為callback的泛型,以便Retrofit幫我們解析
@POST("/interface/xxxxxx")
void getCouponList(Callback<Coupon> reponse);

//但如果我們想獲得JSON字符串,Callback的泛型里就不能寫POJO類了,要寫Response(retrofit.client包下)
@POST("/interface/xxxxxx")
void getCouponList(Callback<Response> reponse);

 

那么在我們請求接口的時候,只需簡單一行代碼,就能拿到服務器返回的JSON字符串了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ZhixueApiUtil.getInstance().getZhixueApi().getCouponList(new Callback<Response>() {
@Override
public void success(Response response, Response response1) {
//注意這里用第一個Response參數的
String jsonString = new String(((TypedByteArray) response.getBody()).getBytes());

//再使用Retrofit自帶的JSON解析(或者別的什么)
Coupon coupon = new Gson().fromJson(jsonString, Coupon.class);
......
}

@Override
public void failure(RetrofitError error) {
......
}
});

 

至此,我們就能拿到JSON字符串了,在需要的時候可以用這種辦法。
當然,也希望Retrofit以后能夠加入相應的API。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM