日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android Retrofit2網(wǎng)路編程實(shí)現(xiàn)方法詳解

瀏覽:15日期:2022-09-21 14:43:58

Android里面本身有OKHttp,不過(guò)不是很好用,這里就用Retrofit2,簡(jiǎn)單好用。

首先,需要加入網(wǎng)絡(luò)權(quán)限:

<uses-permission android:name='android.permission.INTERNET' /> <uses-permission android:name='android.permission.READ_EXTERNAL_STORAGE'/> <uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE'/>

在build.gradle文件里加入引用包: Gson不用的話,就不需要添加

implementation ’com.squareup.okhttp3:okhttp:3.0.1’implementation ’com.squareup.retrofit2:retrofit:2.0.2’implementation ’com.squareup.retrofit2:converter-gson:2.0.2’

這時(shí)準(zhǔn)備工作做完了。

先創(chuàng)建一個(gè)接口文件TestService

package controller.hzl.com.testclient;import java.util.List;import okhttp3.ResponseBody;import retrofit2.Call;import retrofit2.http.Field;import retrofit2.http.FormUrlEncoded;import retrofit2.http.GET;import retrofit2.http.HTTP;import retrofit2.http.POST;import retrofit2.http.Path;public interface TestService { @FormUrlEncoded @POST('getmacaddress') Call<ResponseBody> TestCall2(@Field('mobile') String mobile); @FormUrlEncoded @POST('getmacaddress') Call<MacAdress> TestCall3(@Field('mobile') String mobile);}

這里的@POST('getmacaddress') 的getmacaddress 是URL除IP外的最后一個(gè)路徑,可以理解為 IP+getmacaddress

這里用的是POST請(qǐng)求方式,@Field('mobile')為請(qǐng)求接口的參數(shù)。

寫一個(gè)實(shí)體類模型,用來(lái)匹配接收的數(shù)據(jù)MacAdress

package controller.hzl.com.testclient;public class MacAdress { private String resultMsg; public String getResultMsg() { return resultMsg; } public void setResultMsg(String resultMsg) { this.resultMsg = resultMsg; } public String getResultState() { return resultState; } public void setResultState(String resultState) { this.resultState = resultState; } public String getResultObj() { return resultObj; } public void setResultObj(String resultObj) { this.resultObj = resultObj; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String getDelta() { return delta; } public void setDelta(String delta) { this.delta = delta; } private String resultState; private String resultObj; private String message; private String delta;}

最后主MainActivity

package controller.hzl.com.testclient;import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.TextView;import okhttp3.MediaType;import okhttp3.RequestBody;import okhttp3.ResponseBody;import retrofit2.Call;import retrofit2.Callback;import retrofit2.Response;import retrofit2.Retrofit;import retrofit2.converter.gson.GsonConverterFactory;public class MainActivity extends Activity { private Button button1; private Button button2; private Button button3; private Button button4; private Button button5; private Button button6; private Button button7; private Button button8; private ImageView image; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button1 = (Button) findViewById(R.id.button1); button2 = (Button) findViewById(R.id.button2); button3 = (Button) findViewById(R.id.button3); button4 = (Button) findViewById(R.id.button4); button5 = (Button) findViewById(R.id.button5); button6 = (Button) findViewById(R.id.button6); button7 = (Button) findViewById(R.id.button7); button8 = (Button) findViewById(R.id.button8); image = (ImageView) findViewById(R.id.image); button1.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) {GitHubServiceTest(); } }); button2.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) {IWeatherGetTest(); } }); } private void GitHubServiceTest() { Retrofit retrofit = new Retrofit.Builder() .baseUrl('http://115.29.190.99/api/meta/') .addConverterFactory(GsonConverterFactory.create()) .build(); TestService service = retrofit.create(TestService.class); //https://api.github.com/users/octocat/repos Call<ResponseBody> call = service.TestCall2('13296540788'); call.enqueue(new Callback<ResponseBody>() {@Overridepublic void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { // Get result bean from response.body() // List<Repo> repos = response.body(); System.out.println(response.code()); try { System.out.println(response.body().string()); String jsonstr = new String(response.body().bytes()); System.out.println('jsonstr='+jsonstr); }catch (Exception e){ } // Get header item from response String links = response.headers().get('Link'); showlog('links='+links); /** * 不同于retrofit1 可以同時(shí)操作序列化數(shù)據(jù)javabean和header */}@Overridepublic void onFailure(Call<ResponseBody> call, Throwable throwable) { throwable.printStackTrace(); //showlog(throwable.getCause().toString());} }); } private void IWeatherGetTest() { { Retrofit retrofit = new Retrofit.Builder() .baseUrl('http://115.29.190.99/api/meta/') .addConverterFactory(GsonConverterFactory.create()) .build(); TestService service = retrofit.create(TestService.class); //https://api.github.com/users/octocat/repos Call<MacAdress> call = service.TestCall3('13296540788'); call.enqueue(new Callback<MacAdress>() {@Overridepublic void onResponse(Call<MacAdress> call, Response<MacAdress> response) { // Get result bean from response.body() // List<Repo> repos = response.body(); System.out.println(response.code()); try { System.out.println(response.body().getResultObj()); System.out.println(response.body().getResultState()); }catch (Exception e){ } // Get header item from response String links = response.headers().get('Link'); showlog('links='+links); /** * 不同于retrofit1 可以同時(shí)操作序列化數(shù)據(jù)javabean和header */}@Overridepublic void onFailure(Call<MacAdress> call, Throwable throwable) { throwable.printStackTrace(); //showlog(throwable.getCause().toString());} }); } } public static void showlog(String info) { System.out.print('Retrofit ' + info + 'n'); } }

這里的baseUrl('http://115.29.190.99/api/meta/') 就是URL的前面路徑,加上@POST('getmacaddress') 的getmacaddress 其實(shí)就是 :http://115.29.190.99/api/meta/getmacaddress 請(qǐng)求的全路徑。

兩種方式:

TestCall2 是直接接收接收返回json的數(shù)據(jù)。

TestCall3 是用模型接收返回的json數(shù)據(jù)。

輸出結(jié)構(gòu)為:

Android Retrofit2網(wǎng)路編程實(shí)現(xiàn)方法詳解

代碼

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久久久久久久久齐齐| 色婷婷狠狠五月综合天色拍| 亚洲精品成a人ⅴ香蕉片| 亚洲欧美日韩精品一区二区| 三级小说欧洲区亚洲区| 亚洲欧美专区| 国产欧美日韩一区二区三区四区| 日韩精品三区四区| 亚洲天堂日韩在线| 日韩国产在线不卡视频| 国产精品一区免费在线| 福利一区和二区| 色黄视频在线观看| 久久在线视频免费观看| 日韩一级精品| 综合视频一区| 亚洲欧洲日韩| 国产精品66| 国产精品精品| 99热精品久久| 91精品国产自产精品男人的天堂| 久久激情五月激情| 日韩免费一区| 亚洲欧美网站在线观看| 婷婷综合六月| 国产精品羞羞答答在线观看| 国产精品九九| 999国产精品永久免费视频app| 丝袜美腿一区| 偷拍欧美精品| 亚洲人成亚洲精品| 久久三级视频| 久久a爱视频| 日韩中文字幕一区二区三区| 亚洲免费成人av在线| 国产亚洲一区二区三区不卡 | 欧美日韩一区二区高清| 午夜av一区| 亚洲三级精品| 国产精品久久久久久久免费观看| 欧美日韩国产传媒| 国产精品传媒麻豆hd| 欧美日韩亚洲在线观看| 精品三级久久久| 美腿丝袜亚洲三区| 亚洲欧美日韩在线观看a三区 | 欧美日韩免费看片| 国产亚洲精品美女久久 | 影音先锋国产精品| 国产欧美69| 视频一区视频二区中文| 国产专区一区| 国产高清不卡| 免费观看亚洲天堂| 日韩成人精品一区二区三区| 亚洲国产专区校园欧美| 久久精品99国产精品日本| 在线精品小视频| 日韩国产欧美一区二区| 日韩国产在线一| 婷婷综合一区| 亚洲精品伦理| 亚洲伊人精品酒店| 日韩精品久久理论片| 日本中文字幕一区二区| 老鸭窝毛片一区二区三区| 日韩一区二区久久| 99精品小视频| 日韩精品一区第一页| 亚洲精品美女91| 麻豆精品91| 亚洲综合国产| 美女黄网久久| 男人的天堂久久精品| 97精品久久| 亚洲开心激情| 美女网站久久| 午夜亚洲福利| 国产精品午夜一区二区三区| 精品亚洲二区| 亚洲啊v在线| 在线亚洲观看| 国产欧美88| 你懂的亚洲视频| 久久av免费看| 日韩欧美综合| 夜夜嗨一区二区| 国产亚洲午夜| 日本在线一区二区三区| 欧美日韩18| 国产精品欧美三级在线观看| 日本高清久久| 国产日本亚洲| 国产精品亚洲二区| 国产午夜精品一区在线观看| 亚洲日本在线观看视频| 日韩视频在线一区二区三区| 中文字幕人成乱码在线观看 | 免费在线小视频| 亚洲免费观看| 日韩综合小视频| 精品国产网站| 伊人久久在线| 国产精品对白| 欧美在线不卡| 亚洲第一精品影视| 国产一区二区三区久久| 日韩精品中文字幕第1页| 伊人精品视频| 中文一区二区| 激情欧美一区| 久久亚洲精品中文字幕| 在线亚洲国产精品网站| 色爱av综合网| 精品丝袜久久| 日韩精品一区二区三区中文在线 | 久久精品卡一| 国产婷婷精品| 黄色在线一区| 国产传媒在线| 日韩欧美精品一区| 综合欧美精品| 久久精品国产大片免费观看| 日韩久久视频| 国产欧美日韩视频在线| 久久精品理论片| 视频一区欧美日韩| 亚洲欧美久久| 日韩视频免费| 欧美中文字幕一区二区| 午夜av成人| 综合日韩av| 日韩一区二区中文| 午夜久久中文| 国产不卡av一区二区| 日韩88av| 免费一级欧美片在线观看网站| 久久精品凹凸全集| 亚洲+小说+欧美+激情+另类| 日韩精品一级二级| 日韩精品一区第一页| 91精品国产经典在线观看| 欧美亚洲人成在线| 欧美另类中文字幕| 欧美日韩国产亚洲一区| 国产一区二区精品| 日本va欧美va欧美va精品| 亚洲大片在线| 爽爽淫人综合网网站| 亚洲一区二区av| 国产日韩欧美一区在线| 精品久久国产一区| 午夜av不卡| 中国女人久久久| 日本不卡一区二区| 国产成人久久| 中文一区一区三区高中清不卡免费| 欧美视频一区| 国产欧美亚洲精品a| 荡女精品导航| 久久久五月天| 亚洲不卡av不卡一区二区| 日本少妇一区| 欧美韩一区二区| 精品久久影院| 亚洲综合精品| 日韩成人一级| 国产精品日本一区二区三区在线| 日韩精品高清不卡| 国产美女亚洲精品7777| 91精品国产91久久久久久黑人| 91高清一区| 国产精品天天看天天狠| 国产成人精品一区二区免费看京| 亚洲免费一区二区| 国产伦乱精品| 亚洲一区国产| 伊人久久在线| 精品欠久久久中文字幕加勒比| 久久三级中文| 免费高清在线一区| 欧美国产一级| 久久成人高清| 香蕉久久久久久| 日韩视频中文| 精品亚洲美女网站| 久久亚洲国产精品尤物| 日韩在线网址| 久久精品主播| 福利欧美精品在线| 妖精视频成人观看www| 欧美a级片一区| 日韩一区二区三区免费播放| 国产日韩高清一区二区三区在线 | 日韩一区精品| 在线亚洲成人| 国产精品外国| 国产视频一区在线观看一区免费| 久久激情一区| 亚洲播播91|