在android中使用改型获得作为POJO的API响应头
我正在对API请求进行改装。在我的应用程序中,我在头和体中都获得数据作为响应。正如我们都知道的,“body”可以通过使用Gson或Jackson等库转换为POJO,以类似的方式,我们是否可以将标题转换为POJO?或者建议在一个POJO类中制作页眉和正文的最佳方法。 注意:在header和body中,我都以Json格式获取数据 下面是我用来发送请求的代码在android中使用改型获得作为POJO的API响应头,android,http-headers,retrofit,retrofit2,Android,Http Headers,Retrofit,Retrofit2,我正在对API请求进行改装。在我的应用程序中,我在头和体中都获得数据作为响应。正如我们都知道的,“body”可以通过使用Gson或Jackson等库转换为POJO,以类似的方式,我们是否可以将标题转换为POJO?或者建议在一个POJO类中制作页眉和正文的最佳方法。 注意:在header和body中,我都以Json格式获取数据 下面是我用来发送请求的代码 override fun login(request: LoginModel.Request) { val call: Call<
override fun login(request: LoginModel.Request) {
val call: Call<LoginModel.Response> = apiService.login(request)
call.enqueue(object : Callback<LoginModel.Response> {
override fun onResponse(call: Call<LoginModel.Response>, response: Response<LoginModel.Response>) {
// Log.d(TAG, "login success")
if (response != null) {
val status = response.code()
var headers = response.headers();
var names = headers.names();
for (name:String in names ) {
Log.d("Testing","name:"+name+" value:"+headers.get(name))
}
if (response.body() != null) {
var loginResponse: LoginModel.Response = response.body() as LoginModel.Response;
if (status == 200) {
responseCallback?.onSuccess(loginResponse)
} else {
responseCallback?.onFailure(loginResponse)
}
}
}
}
override fun onFailure(call: Call<LoginModel.Response>, t: Throwable) {
responseCallback?.onFailure("Something went wrong while login")
}
})
}
覆盖有趣的登录(请求:LoginModel.request){
val call:call=apiService.login(请求)
排队(对象:Callback{
覆盖fun onResponse(调用:调用,响应:响应){
//Log.d(标记“登录成功”)
if(响应!=null){
val status=response.code()
var headers=response.headers();
var name=headers.names();
for(名称:名称中的字符串){
Log.d(“测试”,“名称:“+name+”值:“+headers.get(name))
}
if(response.body()!=null){
var loginResponse:LoginModel.Response=Response.body()作为LoginModel.Response;
如果(状态==200){
responseCallback?.onSuccess(登录响应)
}否则{
responseCallback?.onFailure(登录响应)
}
}
}
}
覆盖失效时的乐趣(调用:调用,t:可丢弃){
responseCallback?.onFailure(“登录时出错”)
}
})
}
您可以得到如下标题:
Headers headers=response.headers();
Headers.class定义:
/**
*单个HTTP消息的头字段。值是未解释的字符串;
*
*此类逐行跟踪标题值。具有多个逗号分隔值的字段
*此类会将同一行视为具有单个值的字段。这是打电话的人的电话
*如果其字段允许多个值,则负责检测并拆分逗号。这
*简化了值通常包含逗号的单值字段的使用,如cookie或
*日期。
*
*此类从值中修剪空白。它从不返回前导或尾随的值
*空白。
*
*此类的实例是不可变的。
*/
要从多个标题中获取值,请执行以下操作:
headers.values("Set-Cookie")
对于标题的相同名称:
List<String> cookieList = headers.toMultimap().get("set-cookie")
List-cookieList=headers.toMultimap().get(“设置cookie”)
您可以得到如下标题:
Headers headers=response.headers();
Headers.class定义:
/**
*单个HTTP消息的头字段。值是未解释的字符串;
*
*此类逐行跟踪标题值。具有多个逗号分隔值的字段
*此类会将同一行视为具有单个值的字段。这是打电话的人的电话
*如果其字段允许多个值,则负责检测并拆分逗号。这
*简化了值通常包含逗号的单值字段的使用,如cookie或
*日期。
*
*此类从值中修剪空白。它从不返回前导或尾随的值
*空白。
*
*此类的实例是不可变的。
*/
要从多个标题中获取值,请执行以下操作:
headers.values("Set-Cookie")
对于标题的相同名称:
List<String> cookieList = headers.toMultimap().get("set-cookie")
List-cookieList=headers.toMultimap().get(“设置cookie”)
谢谢您的回复。在我的代码中,我可以得到标题。我想将这些标题转换为POJO。有什么解决办法吗?据我所知,你不能。谢谢你的回复。在我的代码中,我可以得到标题。我想将这些标题转换为POJO。有什么解决办法吗?据我所知,你不能。