Swift 如何从响应中获取自定义标题(改装和rxjava)

Swift 如何从响应中获取自定义标题(改装和rxjava),swift,retrofit,rx-java,Swift,Retrofit,Rx Java,我试图从代码中的所有RESTAPI响应中获取一些自定义HTTP头。 以下是我如何启动客户机: private fun initializeClient():OkHttpClient{ val interceptor=HttpLoggingInterceptor() interceptor.level=HttpLoggingInterceptor.level.BODY val httpClient=OkHttpClient.Builder() .addInterceptor(对象:拦截器{ 覆盖有

我试图从代码中的所有RESTAPI响应中获取一些自定义HTTP头。 以下是我如何启动客户机:

private fun initializeClient():OkHttpClient{
val interceptor=HttpLoggingInterceptor()
interceptor.level=HttpLoggingInterceptor.level.BODY
val httpClient=OkHttpClient.Builder()
.addInterceptor(对象:拦截器{
覆盖有趣的拦截(链:Interceptor.chain):响应{
val original=chain.request()
valrequest=original.newBuilder()
.header(“内容类型”、“应用程序/json”)
.方法(原始.方法,原始.正文)
.build()
返回链。继续(请求)
}
})
.addInterceptor(拦截器)
.build()
返回httpClient
}
私人娱乐初始值EAPI(){
api=改装.Builder()
.baseUrl(API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.client(initializeClient())
.build()
.create(RestApi::class.java)
}
以下是改装实施的示例:

@POST(“/register”)
fun registerUser(@Body registerPostData:RegistrationForm):单个
和ViewModel部分:

disposable.add(
api.registerUser(表格)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribowith(对象:DisposableSingleObserver(){
成功时覆盖乐趣(值:RegistrationResponse?){
//这里没有标题
response.value=value
}
覆盖有趣的错误(e:可丢弃?){
}
})
)
服务器在所有API响应中返回一些
x-custom-header
,我需要在所有调用中捕获这些响应


谢谢大家!

更改改装类别以返回:

@POST(“/register”)
fun registerUser(@Body registerPostData:RegistrationForm):单个
然后:

成功覆盖乐趣(结果:响应?){
//从response.headers()获取标题
}

太棒了!我认为您在成功时出现了一个错误,应该是
响应
,而不是
结果
@POST("/register")
fun registerUser(@Body registerPostData: RegistrationForm): Single<Response<RegistrationResponse>>
override fun onSuccess(result: Response<RegistrationResponse>?) {
    // get header from response.headers()
}