簡體   English   中英

如何使用Retrofit2和RxJava2獲取頭文件

[英]how to fetch header with Retrofit2 and RxJava2

我有一個API,我需要從標題中提取信息並進行另一個調用。 我嘗試了很多方法,但似乎無法獲取標題。 沒有其他回應。

我已經嘗試讓它返回各種Response對象,例如okhttp3頭文件,Retrofit頭文件,HttpHeaders等,但在第一個char獲取EOF。

API:

@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調用以獲得標題?

本月第二次我回答了自己的問題。

這個是雙重的。 1)獲得正確的響應類型。 我去了

Observable<Response<ResponseBody>>

這讓我看到了標題。 然而,第二部分是我在將它傳遞給processHeader之前我正在使用它。我正在給it消耗響應的processHeader。 我將subscribe方法更改為:

  processHeader(it)

至:

  val headers = it?.headers()
  processHeader(headers)

所以processHeaders只看到標題,響應可以正常“消耗”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM