×

retrofit f tr

retrofit(如何用Retrofit直接获得Json数据)

admin admin 发表于2023-05-04 01:38:20 浏览58 评论0

抢沙发发表评论

本文目录

如何用Retrofit直接获得Json数据

直接上个实例吧。
通过retrofit库post一串json格式的数据。首先post的json数据格式如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
“Id“: “string“,
“DeviceId“: “string“,
“Name“: “string“,
“SumDistance“: 0,
“RouteNo“: “string“,
“SumPoints“: 0,
“SetupTime“: “2016-06-10T13:11:00.766Z“,
“UsedTime“: 0,
“Points“: [
{
“Id“: “string“,
“RouteNo“: “string“,
“Name“: “string“,
“Longitude“: “string“,
“Latitude“: “string“,
“Height“: 0,
“Distance“: 0,
“Yaw“: 0,
“Pitch“: 0,
“Speed“: 0,
“Usedtime“: 0
}
]
}
通过安装Android studio gsonformat插件,根据上面的json格式自动生成一个Bean类,本文命名为FlyRouteBean,
1
2
3
4
5
6
7
然后就来建立接口了,其内容如下:
[java] view plain copy
public interface PostRoute {
@Headers({“Content-Type: application/json“,“Accept: application/json“})//需要添加头
@POST(“api/FlyRoute/Add“)
Call《FlyRouteBean》 postFlyRoute(@Body RequestBody route);//传入的参数为RequestBody
}
接下来就是提交数据的了:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
FlyRouteBean flyRouteBean=new FlyRouteBean();
flyRouteBean=initdata(flyRouteBean);//根据Bean类初始化一个需要提交的数据类
Gson gson=new Gson();
String route= gson.toJson(flyRouteBean);//通过Gson将Bean转化为Json字符串形式
[java] view plain copy
Retrofit retrofit=new Retrofit.Builder()
.baseUrl(URL)
.addConverterFactory( GsonConverterFactory.create())
.build();
PostRoute postRoute=retrofit.create(PostRoute.class);
RequestBody body=RequestBody.create(ok
}
@Override
public void onFailure(Call《FlyRouteBean》 call, Throwable t) {
Log.e(“sssss“,t.getMessage());
}
});

如何使用retrofit发送网络请求

用Retrofit发送网络请求和解析json的实例
Retrofit是Android的一个非常好用的开源HTTP Request。现在介绍一下Retrofit是如何使用的。。。。
首先是导入Retrofit包,
dependencies {
compile fileTree(dir: ’libs’, include: [’*.jar’])
compile ’com.android.support:appcompat-v7:22.0.0’
compile ’com.squareup.retrofit:retrofit:1.9.0’
}1234512345
然后是根据API的JSON数据建立一个数据类
URL:
《uses-permission android:name=“android.permission.INTERNET“》《/uses-permission》

retrofit请求在哪个线程

  一、 简介
  Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求,其源码详见OkHttp Github。
  本文全部是在Retrofit2.0+版本基础上论述,所用例子全部来自豆瓣Api
  首先先来看一个完整Get请求是如何实现:
  创建业务请求接口,具体代码如下:
  public interface BlueService {
  @GET(“book/search”)
  Call《BookSearchResponse》 getSearchBooks(@Query(“q”) String name,
  @Query(“tag”) String tag, @Query(“start”) int start,
  @Query(“count”) int count);
  }

在Android中使用retrofit时,怎样获取响应的头信息

获取方法

有两种获取Response Headers的方法

  1. 直接在定义接口是让接口返回Retrofit的Response对象,

在Response对象中可以获取到Headers

   2. 在构建Retrofit的APIService时,

在OkHttpClient中加入Interceptor,用以拦截请求和响应获取请求头和响应头。

此方法可用于Retrofit2和OKHttp3.

Interceptor必须在OkHttpClient构建时加入,

OKHttpClient的interceptors()方法返回的是一个不可编辑的列表,

如果对其进行修改操作,会产生UnSupportedOperationException。

为什么要使用retrofit框架

网络访问框架经过了从使用最原始的AsyncTask构建简单的网络访问框架(甚至不能称为框架),后来使用开源的Android-async-
[html] view plain copy