Retrofit http客户端
来源:互联网 发布:app提示网络连接失败 编辑:程序博客网 时间:2024/05/16 16:19
除了gson转换器,还有其他的支持json的转换器,或者自定义转换器(不一定要转换对象,而是有时需要对http头中的错误码进行处理)
<dependency><groupId>com.squareup.retrofit2</groupId><artifactId>retrofit</artifactId><version>2.3.0</version></dependency><dependency><groupId>com.squareup.retrofit2</groupId><artifactId>converter-gson</artifactId><version>2.3.0</version></dependency>
package gaofeng.http.retrofit;import java.util.List;import retrofit2.Call;import retrofit2.http.GET;import retrofit2.http.Path;public interface GitHubService {@GET("users/{user}/repos")Call<List<Repo>> listRepos(@Path("user") String user);}
package gaofeng.http.retrofit;public class Repo {private int id;private String name;private String full_name;@Overridepublic String toString() {return "Repo [id=" + id + ", name=" + name + ", full_name=" + full_name + "]";}}
package gaofeng.http.retrofit;import java.io.IOException;import java.util.List;import retrofit2.Call;import retrofit2.Callback;import retrofit2.Response;import retrofit2.Retrofit;import retrofit2.converter.gson.GsonConverterFactory;public class Retrofit1 {public static void main(String[] args) throws IOException {Retrofit retrofit = new Retrofit.Builder().baseUrl("https://api.github.com/").addConverterFactory(GsonConverterFactory.create()).build();GitHubService service = retrofit.create(GitHubService.class);Call<List<Repo>> call = service.listRepos("ggaofengg");//同步请求// Response<List<Repo>> re = call.execute();// System.err.println(re.body().get(0));//异步请求call.enqueue(new Callback<List<Repo>>() {public void onResponse(Call<List<Repo>> call, Response<List<Repo>> response) {System.err.println(response.code() +" "+ response.message());System.err.println(response.body().size());System.err.println(response.body().get(0));}public void onFailure(Call<List<Repo>> call, Throwable t) {t.printStackTrace();}});System.err.println("hehe");}}
Retrofit2.1学习:Call接口的使用
http://www.jianshu.com/p/05bbf3aa2269public class Test {public static void main(String[] args) throws IOException {Retrofit retrofit = new Retrofit.Builder().baseUrl("http://127.0.0.1:5000").build();//不要转换器,用原始ResponseBody,当返回500错误时,也可以通过errorbody获取响应内容RestfulClient s = retrofit.create(RestfulClient.class);Call<ResponseBody> d = s.listRepos("999");Response<ResponseBody> p= d.execute(); System.out.println(p.code()); System.out.println(p.message());//System.out.println(p.errorBody().string());System.out.println(p.body().string());}public static void main2(String[] args) throws IOException {Retrofit retrofit = new Retrofit.Builder().baseUrl("http://127.0.0.1:5000").addConverterFactory(new Factory() {//自定义转换器@Overridepublic Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) { return new Converter<ResponseBody, String>() { public String convert(ResponseBody value) throws IOException { return "value.string()"; } }; }}).build();RestfulClient2 s = retrofit.create(RestfulClient2.class);Call<String> d = s.listRepos("999");Response<String> p= d.execute(); System.out.println(p.code()); System.out.println(p.message());System.out.println(p.errorBody());//System.out.println(p.body());}}interface RestfulClient {@GET("/app/")Call<ResponseBody> listRepos(@Query("user") String user);}interface RestfulClient2 {@GET("/app/")Call<String> listRepos(@Query("user") String user);}
阅读全文
0 0
- Retrofit http客户端
- 开始使用Retrofit 2 HTTP 客户端
- 一种类型安全的Java HTTP客户端库Retrofit
- Retrofit 2.0: 最好的Android HTTP客户端库的一次重大改变
- Retrofit 一种适用于Android和Java的类型安全的http客户端
- Retrofit 一个适用于Android和Java的类型安全的HTTP客户端
- 开始在Android上使用Retrofit并创建Http请求客户端
- retrofit http取消请求
- http客户端
- Retrofit--创建一个可扩展的客户端
- Android Async HTTP Clients: Volley vs Retrofit
- 用 Retrofit 2 简化 HTTP 请求
- 用 Retrofit 2 简化 HTTP 请求
- 用 Retrofit 2 简化 HTTP 请求
- RxJava2和Retrofit Http请求的封装
- 如何使用OkHttp/Retrofit重试HTTP请求
- Retrofit
- Retrofit
- 可搜索加密1
- Magento 2中文手册教程
- Linux安装搜狗输入法
- maven命令
- angular 中使用md5
- Retrofit http客户端
- (153)平面反射
- 音视频数据处理(24)--- H。264量化参数QP和量化步长Qstep
- 3169: 小万的回文串
- 手机vin码识别研发的作用描述应用场景
- Eclipse中鼠标左键点中一个单词,自动出现该单词的所有位置
- MySQL非安装版(zip包)安装、配置与启动过程
- C++搜索与回溯算法之拆数
- HDU2767 Proving Equivalences