为什么 Retrofit 不向服务器发送 POST 请求?

Why Retrofit doesn't send POST request to the server?

在 API 声明中我有这个代码:

@FormUrlEncoded
@POST("loginByPass/")
fun loginByPassword(@Field("login") login: String,
                    @Field("password") password: String,
                    @Field("phone") phone: String) : Observable<AuthResponse>

改造我这样创建的对象:

class API {
    companion object {
        fun getRetrofitAPI() : IAPI {
            val interceptor = HttpLoggingInterceptor()
            interceptor.setLevel(HttpLoggingInterceptor.Level.BODY)


            val client = OkHttpClient.Builder()
                .connectTimeout(30, TimeUnit.SECONDS)
                .addInterceptor(interceptor)
                .addNetworkInterceptor(interceptor)
                .build()

            val retrofit = Retrofit.Builder()
                .baseUrl(SERVER_ADDRESS)
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .client(client)
                .build()

            return retrofit.create(IAPI::class.java)
        }
    }
}

并请求:

api.loginByPassword(login, password, "")
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.io())
            .subscribe({
                Log.w("USER_DB", "CODE: " + it.code)
            }, {
                this.sayError(it.localizedMessage)
            }).dispose()

而且我一点反应都没有!在日志中,我似乎没有发送任何请求。我还看到了已发送的包 - 模拟器什么也没发送。我正在通过 HTTP 调用服务器 IP 地址。 请问有什么问题吗?

根据@DrawnRaccoon 的回答,.dispose() 会破坏请求,所以我应该使用 CompositeDisposable 来收集所有请求并在 onDestroy() 方法中处理它们。