我有一个API,我需要从标题中提取信息并进行另一个调用。我尝试了多种方法,但似乎无法仅获取标头。没有其他回应。
我尝试过让它返回各种Response对象,例如okhttp3标头,Retrofit标头,HttpHeaders等,但是在第一个字符处获得了EOF。
@POST("api/booking/search")
fun bookFlight(@Body bookFlightDetails: BookFlightDetails): Observable<Response<Headers>>
class DataManager(context: AllegiantApplication, private val mApi: RxRestServices) {
fun bookFlight(bookingDetails: BookFlightDetails) : Observable<Response<Headers>>? {
return mApi.bookFlight(bookingDetails)
}
fun bookFlight(bookingDetails: BookFlightDetails) {
mDataManager.bookFlight(bookingDetails)
?.subscribeOn(Schedulers.io())
?.observeOn(AndroidSchedulers.mainThread())
?.subscribe({
processHeader(it)
}, {
error -> Log.d("TAG", error.localizedMessage) // <- EOF at 1st char
}
)
}
任何人都可以告诉我如何构造我的api调用以仅获取标头吗?
答案 0 :(得分:0)
这是两倍。 1)获得正确的响应类型。我去了
Observable<Response<ResponseBody>>
,这使我可以看到标题。但是,第二部分是我在将其发送到processHeader之前就将其使用。我正在给processHeader it
消耗响应。我将订阅方法从更改为:
processHeader(it)
收件人:
val headers = it?.headers()
processHeader(headers)
因此processHeaders只能看到可以正常“使用”响应的标头