当前位置: 首页 > 知识库问答 >
问题:

如何使用Reformat2和RxJava2获取报头

范浩荡
2023-03-14

我有一个API,我需要从标头中提取信息并进行另一次调用。我已经尝试了许多方法,但似乎无法仅获取标头。没有其他响应。

我尝试过让它返回各种响应对象,例如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调用来获取标头吗?

共有1个答案

皇甫展
2023-03-14

这个月我第二次回答了自己的问题。

这个是双重的。1)获得正确的回应类型。我去了

Observable<Response<ResponseBody>>

这让我看到了标题。然而,第二部分是我在将它发送到processHeader之前消耗了它。我正在给processHeader it使用响应。我将订阅方法从:

  processHeader(it)

收件人:

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

因此,processHeaders 只能看到响应可以正常“消耗”的标头

 类似资料:
  • 我使用Reformation2和RxJava2从服务器获取数据。我有以下格式的回复: 我得到以下异常: ApiService.class RetrofitClient.class 现在我正在使用如下的一些东西来获取数据: 有人请让我知道为什么我得到这个exception.Any帮助将不胜感激。 谢谢

  • 注意:我使用()而不是尖括号 我有一个MVP android应用程序,它使用Retofit2和RxJava2从GitHub Api获取数据。代码运行良好,我能够恢复一个可观察的(响应(列表(头)),其中响应来自Reformation2,头来自OkHttp3。 但是当涉及到单元测试时,我遇到了一个问题:我无法模拟响应(List(Headers))。Retrofit2响应类有一个私有构造函数,所以我无

  • 在RXJava1中,有CompositeSubscription,但在RxJava2中没有,在RxJava2中有CompositeDisable。我如何在RXJava2中使用CompositeDisposable或Disposable?

  • 如何使用注册为频道管理员的机器人访问电报频道消息? 我试图从电报频道获取所有信息,并在ASP.NET网页上显示出来(c#) 当新消息直接发送到机器人时,我能够获得更新: 但它不适用于该频道。

  • 我从Cucumber 1.2.5升级到Cucumber 5.6.0。升级进行得很顺利,但是我的扩展报告坏了。我尝试升级它们并使用Cucumber 4适配器。文件很稀少,我无法让它工作。所以我去下载了示例实现。我能够编译和运行它,并获得报告。我将示例项目升级到Cucumber 4.8.1,将Extent Reporter升级到4,然后运行,但没有创建报告。我不知所措,我的谷歌搜索没有找到任何信息。

  • 我在我的swift应用程序中使用Moya进行网络请求。 我能够获得请求和映射结果使用Moya-Object Mapper。 我以前使用过alamofire,我熟悉如何进行post,获取请求和阅读响应头。 然而,我似乎无法理解我怎么能在莫亚也这样做。 我确实浏览了文档,但它没有说明任何关于读取响应头的内容。 有没有任何例子或教程,我可以遵循如何做一个HTTP身份验证和读取响应头。以及如何发出post