【问题标题】:bug retrofit.RetrofitError: java.io.EOFException for Androidbug retrofit.RetrofitError: java.io.EOFException for Android
【发布时间】:2014-09-08 12:24:33
【问题描述】:

我搜索了很多,我找到了一些这样的解决方案:

System.setProperty("http.keepAlive", "false");
arg0.addHeader("Connection", "close");
arg0.addHeader("Accept-Language", "en-US,en;q=0.8");

我尝试了它们,但对我没有用。我怎样才能纠正这个错误?这是我的日志:

D/Retrofit(28969): ---> 
    HTTP POST http://release.api.jeunesse.build.indus.ftven.net/app.php/api/users
D/Retrofit(28969): Connection: close
D/Retrofit(28969): Content-Type: application/json
D/Retrofit(28969): Content-Length: 169
D/Retrofit(28969): {"birthday":"2010-06-05T12:16:42+0200", \
  "devices":[{"device":"ae045e7bead6f933487a237f8b5f298d","primary":true}],\
  "email":"test@test.fr","login":"test9","password":"9876"}
D/Retrofit(28969): ---> END HTTP (169-byte body)
D/Retrofit(28969): ---- 
    ERROR http://release.api.jeunesse.build.indus.ftven.net/app.php/api/users
D/Retrofit(28969): java.io.EOFException
D/Retrofit(28969):     at libcore.io.Streams.readAsciiLine(Streams.java:203)
D/Retrofit(28969):     at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:579)
D/Retrofit(28969):     at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:827)
D/Retrofit(28969):     at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:283)
D/Retrofit(28969):     at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:497)
D/Retrofit(28969):     at retrofit.client.UrlConnectionClient.readResponse(UrlConnectionClient.java:73)
D/Retrofit(28969):     at retrofit.client.UrlConnectionClient.execute(UrlConnectionClient.java:38)
D/Retrofit(28969):     at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:321)
D/Retrofit(28969):     at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:240)
D/Retrofit(28969):     at $Proxy3.createUser(Native Method)
D/Retrofit(28969):     at fr.francetv.ludo.backend.services.businessdelegate
    .RetrieveFluxDonneesBDL.postInscription(RetrieveFluxDonneesBDL.java:323)
D/Retrofit(28969):     at fr.francetv.ludo.backend.services.metier.user
    .AdministrerUser.inscriptionUser(AdministrerUser.java:202)
D/Retrofit(28969):     at fr.francetv.ludo.backend.services.metier
    .AdministrerHelper.inscriptionUser(AdministrerHelper.java:158)
D/Retrofit(28969):     at fr.francetv.ludo.ui.inscription
    .InscriptionLoginFragment$3.background(InscriptionLoginFragment.java:136)
D/Retrofit(28969):     at fr.francetv.ludo.ui.inscription
    .InscriptionLoginFragment$3.background(InscriptionLoginFragment.java:1)
D/Retrofit(28969):     at fr.francetv.ludo.backend.services.AsyncHelper.doInBackground(AsyncHelper.java:28)
D/Retrofit(28969):     at fr.francetv.ludo.backend.services.AsyncHelper.doInBackground(AsyncHelper.java:1)
D/Retrofit(28969):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
D/Retrofit(28969):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
D/Retrofit(28969):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
D/Retrofit(28969):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
D/Retrofit(28969):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
D/Retrofit(28969):     at java.lang.Thread.run(Thread.java:841)
D/Retrofit(28969): ---- END ERROR

感谢您的回复

【问题讨论】:

    标签: java android retrofit okhttp


    【解决方案1】:

    这是一个已知问题:

    https://github.com/square/retrofit/issues/397

    您尝试过使用 OkHttp 吗?

    【讨论】:

    • 我试试这个我现在有这个错误 07-18 15:05:34.598: E/AsyncHelper(13832): 异常捕获:改造在类路径上检测到不支持的 OkHttp。我使用 com.squareup.okhttpokhttp2.0.0
    【解决方案2】:

    我终于解决了这个问题。正如mromer 所说,解决方案是同时使用OkClientOkHttp。添加这两个库后,我将 Retrofit 上的客户端设置为 OkHttp,如下所示:

    RestAdapter restAdapter = new RestAdapter.Builder()
        .setErrorHandler(new ErrorRetrofitHandlerException())
        .setEndpoint(urlBase)
        .setLogLevel(RestAdapter.LogLevel.FULL)
        .setClient(new OkClient(new OkHttpClient()))
        .build();
    

    【讨论】:

    • 我试过了,但我还是得到了这个。我相信问题来自设备没有良好连接或服务器不接受连接的连接问题,所以只是错误没有得到响应.
    • 这里有同样的问题。这个错误对我来说并不一致。
    【解决方案3】:

    检查您的互联网连接,使用真实设备并测试应用程序

    【讨论】:

      猜你喜欢
      • 2016-03-26
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 2019-05-10
      • 2018-06-14
      相关资源
      最近更新 更多