亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

如何使用retrofit去請求網絡

標簽:
Android

引入:

compile 'com.google.code.gson:gson:2.8.0'
compile 'com.squareup.retrofit2:retrofit:2.4.0'
compile 'com.squareup.retrofit2:converter-gson:2.4.0'

因为retrofit已经包含了okhttp的库,所以就不要额外引入okhttp了

我们使用retrofit来请求:http://139.199.89.89/api/v1/books这样一个API

private void useRetrofit() {
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("http://139.199.89.89") //设置网络请求的Url地址
            .addConverterFactory(GsonConverterFactory.create()) //设置数据解析器
            .build();
    BookService service = retrofit.create(BookService.class);
    Call<BookResponse> call = service.getResult();

    //3.发送请求
    call.enqueue(new Callback<BookResponse>() {
        @Override
        public void onResponse(Call<BookResponse> call, Response<BookResponse> response) {
            Log.d(TAG,"<<<<<response="+response);
        }

        @Override
        public void onFailure(Call<BookResponse> call, Throwable t) {

        }
    });

}


我们要写一个service,叫BookService:

package com.pic.optimize.http;

import retrofit2.Call;
import retrofit2.http.GET;

public interface BookService {
    @GET("/api/v1/books")
    Call<BookResponse> getResult();
}

然后要写json的解析实体BookResponse:

import java.util.ArrayList;

public class BookResponse {
    public ArrayList<Book> data;
    public int status;
    public String message;
}

然后就在onResponse中就可以得到回调了

我们再写一个添加一本书的post的请求,url是http://139.199.89.89,服务端接收参数是

bookName和bookDescription:

import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;

public interface BookPostService {
    @POST("/api/v1/books")
    @FormUrlEncoded
    Call<BookResponse> getResult(@Field("bookName") String name, @Field("bookDescription") String description);
}
private void useRetrofit() {
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("http://139.199.89.89") //设置网络请求的Url地址
            .addConverterFactory(GsonConverterFactory.create()) //设置数据解析器
            .build();
    BookPostService service = retrofit.create(BookPostService.class);
    Call<BookResponse> call = service.getResult(mBookNameEdit.getText().toString(),mDescriptionEdit.getText().toString());

    //3.发送请求
    call.enqueue(new Callback<BookResponse>() {
        @Override
        public void onResponse(Call<BookResponse> call, Response<BookResponse> response) {
            Log.d(TAG,"<<<<<response="+response);
        }

        @Override
        public void onFailure(Call<BookResponse> call, Throwable t) {

        }
    });

}


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
全棧工程師
手記
粉絲
6509
獲贊與收藏
303

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消