Android Retrofit W/System.err: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:

Android Retrofit 访问本地Restful API报错,

错误信息:

W/System.err: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:9000
        at okhttp3.internal.io.RealConnection.connectSocket(RealConnection.java:142)
        at okhttp3.internal.io.RealConnection.connect(RealConnection.java:111)
        at okhttp3.internal.http.StreamAllocation.findConnection(StreamAllocation.java:188)
        at okhttp3.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:127)
        at okhttp3.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
        at okhttp3.internal.http.HttpEngine.connect(HttpEngine.java:289)
        at okhttp3.internal.http.HttpEngine.sendRequest(HttpEngine.java:241)
        at okhttp3.RealCall.getResponse(RealCall.java:240)
        at okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java:198)
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:160)
        at okhttp3.RealCall.access$100(RealCall.java:30)
W/System.err:     at okhttp3.RealCall$AsyncCall.execute(RealCall.java:127)
        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:764)

错误原因:模拟器把localhost和127.0.0.1当做本身了。

解决办法:可以用10.0.2.2代替,

如果是在局域网,也可以用局域网IP(例如:192.168.0.102)代替。

 

 

你可能感兴趣的:(Android)