Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android HTTP失败:java.net.SocketException:套接字关闭改装_Android_Retrofit2_Rx Java2 - Fatal编程技术网

Android HTTP失败:java.net.SocketException:套接字关闭改装

Android HTTP失败:java.net.SocketException:套接字关闭改装,android,retrofit2,rx-java2,Android,Retrofit2,Rx Java2,尝试了多种方法,但仍面临此问题 我正在使用RxJava和改型来完成我的所有网络操作。下面是我的代码 您可以创建您的OkHttp客户端,如下所示,在OkhttpClient中添加以下类似内容后,我在低端网络中遇到套接字关闭异常 connectionPool(connectionPool(0,1,时间单位纳秒)) 协议(listOf(Protocol.HTTP_1_1)) 在清单中设置了INTERNET权限?@Christopher已经给出了权限OK,我想我们需要更详细的错误描述。SocketExc

尝试了多种方法,但仍面临此问题

我正在使用RxJava和改型来完成我的所有网络操作。下面是我的代码


您可以创建您的OkHttp客户端,如下所示,在OkhttpClient中添加以下类似内容后,我在低端网络中遇到套接字关闭异常

connectionPool(connectionPool(0,1,时间单位纳秒))
协议(listOf(Protocol.HTTP_1_1))


在清单中设置了INTERNET权限?@Christopher已经给出了权限OK,我想我们需要更详细的错误描述。SocketException有几个原因。同一个HTTP请求是否与不同的工具(例如Postman)一起工作?以确保原因不是您的后端。是的,在postman上得到响应,但我对此有异议。您是否有可能处置了
compositeDisposable
@GET("/v1/contact/{id}")
fun getContactDetails(@Path("id") id:String): Flowable<ContactDetailResponse>
 override fun contactDetails(contactId:String) {
    mContactResponse.loading(true)
    remote.getContactDetails(contactId)
            .performOnBackOutOnMain(scheduler)
            .subscribe({
                data -> mContactResponse.success(data)
            },{
                error -> mContactResponse.failed(error)
            })
            .addTo(compositeDisposable)
}
fun <T> Flowable<T>.performOnBackOutOnMain(scheduler: Scheduler): 
Flowable<T> {
  return this.subscribeOn(scheduler.io())
        .observeOn(scheduler.mainThread())
}
@Module
class NetworkModule(val key: String, val secret: String) {

 @Provides
 @Singleton
 fun providesRetrofit(jacksonConverterFactory: JacksonConverterFactory,
                     rxJava2CallAdapterFactory: 
 RxJava2CallAdapterFactory,
                     okHttpClient: OkHttpClient,
                     baseUrl: String): Retrofit {

    return Retrofit.Builder().baseUrl(baseUrl)
            .addConverterFactory(jacksonConverterFactory)
            .addCallAdapterFactory(rxJava2CallAdapterFactory)
            .client(okHttpClient)
            .build()
 }

  @Provides
  @Singleton
  fun providesOkHttpClient(cache: Cache, httpInterceptor: 
  HttpLoggingInterceptor): OkHttpClient {

    val client = OkHttpClient.Builder()
            .cache(cache)
            .addInterceptor(httpInterceptor)
            .retryOnConnectionFailure(true)
            .connectTimeout(100, TimeUnit.SECONDS)
            .writeTimeout(100, TimeUnit.SECONDS)
            .readTimeout(100, TimeUnit.SECONDS)


    return client.build()
  }

}
        OkHttpClient.Builder().apply {
        .connectionPool(ConnectionPool(0, 1, TimeUnit.NANOSECONDS))
        .protocols(listOf(Protocol.HTTP_1_1))
        connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS)
        writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS)
        readTimeout(READ_TIMEOUT, TimeUnit.SECONDS)
        retryOnConnectionFailure(false)
        }.build()