Okhttp和Retrofit的get,post请求
2017-08-18 20:27
375 查看
为什么要用Okhtt 和Retrofit
1.可以配置不同HTTP client来实现网络请求,如okhttp、httpclient等2.请求的方法参数注解都可以定制
3.支持同步、异步和RxJava
4.超级解耦
5.可以配置不同的反序列化工具来解析数据,如json、xml等
6.使用非常方便灵活
7.框架使用了很多设计模式
1添加网络权限,添加依赖
<uses-permission android:name="android.permission.INTERNET/> compile 'com.squareup.retrofit2:retrofit:2.2.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' compile "com.squareup.retrofit2:adapter-rxjava2:2.2.0"
2封装类
这个代码相信大家都应该会 把需要的属性,封装起来
3 接口
package com.example.bx.okhttp_01; import retrofit2.Call; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.POST; import retrofit2.http.Query; /** * Created by BX on 2017/8/18. */ public interface IUserBiz { @GET("get?") Call<Resultcode> getResult(@Query("phone")String phone,@Query("key") String key); @POST("get?") @FormUrlEncoded Call<Resultcode> postResult(@Field("phone")String phone ,@Field("key") String key); }
Activity 中的代码
package com.example.bx.okhttp_01; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import okhttp3.OkHttpClient; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); OkRetrofit_Get(); OkRetrofit_Post(); } private void OkRetrofit_Post() { OkHttpClient client=new OkHttpClient.Builder() .build(); Retrofit retrofit=new Retrofit.Builder() .baseUrl("http://apis.juhe.cn/mobile/") .addConverterFactory(GsonConverterFactory.create()) .client(client) .build(); IUserBiz userBiz=retrofit.create(IUserBiz.class); Call<Resultcode> call=userBiz.postResult("13026167375","69eae34c7c30b963a0ec2eeefc05a37d"); call.enqueue(new Callback<Resultcode>() { @Override public void onResponse(Call<Resultcode> call, Response<Resultcode> response) { Log.d(TAG, "onResponse: "+ response.body().getResult().getCity()); } @Override public void onFailure(Call<Resultcode> call, Throwable t) { } }); } private void OkRetrofit_Get() { OkHttpClient client=new OkHttpClient.Builder() .build(); Retrofit retrofit=new Retrofit.Builder() .baseUrl("http://apis.juhe.cn/mobile/") .addConverterFactory(GsonConverterFactory.create()) .client(client) .build(); IUserBiz userBiz=retrofit.create(IUserBiz.class); Call<Resultcode> call=userBiz.getResult("13026167375","69eae34c7c30b963a0ec2eeefc05a37d"); call.enqueue(new Callback<Resultcode>() { @Override public void onResponse(Call<Resultcode> call, Response<Resultcode> response) { Log.d(TAG, "onResponse: "+ response.body().getResult().getCity()); } @Override public void onFailure(Call<Resultcode> call, Throwable t) { } }); } }
这些都是根据网络资料上写出来的,数据都请求到了 相对比较简单
初学者可以学一下 ,get和post 请求代码相似度比较高,如果要深
入系统的学习多去官网上看看
相关文章推荐
- 用okhttp请求 get同步 get异步 post异步
- 快捷使用Retrofit网络请求框架(get请求,post请求,上传文件)
- RxAndroid结合OkHttp实现图片下载、get、post请求
- okhttp get post请求
- Android中使用OkHttp包处理HTTP的get和post请求的方法
- Android okHttp网络请求之Get/Post请求
- OkHttp使用Get和Post两种请求方式
- 使用Retrofit结合RxJava实现Get与Post网络请求
- OkHttp get post请求的封装
- retrofit2.0中使用okHTTP post get put 过滤请求内容或添加内容
- Android okHttp网络请求之Get/Post请求(一)
- OkHttp 3.0之后版本GET、POST请求以及POST上传文件的示例代码
- OkHttp的get,post请求,拦截器
- OKhttp的get请求和post请求
- okhttp,get,post,put,delete 请求
- Android 单例模式 封装 Okhttp + RxJava 网络请求(get和post)
- Android中Okhttp进行get和post提交及数据请求的基本使用
- Okhttp的get和post请求
- 两行代码搞定发送 Retrofit GET/POST 请求
- [置顶] 使用OKHttp3 get请求 , post请求 , 多文件上传 , 包看包会