我在我的应用中使用retrofit 2
。我的应用与wi-fi
合作良好,但当我从Mobile data
使用时,改装将我重定向到onFailure
方法。
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.okhttp3:okhttp:3.4.1'
retrofit
慢吗?
我该怎么办?
我应该将库更改为volley
吗?
在onFailure
方法中,请将此消息告诉我:
failed to connect to /192.168.x.y (port 8087) after 10000 ms
答案 0 :(得分:2)
这与改造或okhttp无关。 您正在使用本地网络(假设来自ip:192.168.x.y)只能在您的wifi网络上使用,而不是在您的移动网络上(幸运的是)无法访问您的wifi /本地网络。
答案 1 :(得分:0)
这不是改装问题。 检查您的本地网络。它可能需要端口号或其他信息。 尝试检查浏览器以便更好地理解。
答案 2 :(得分:0)
您无法从移动数据访问本地网络(192.168.8.11)。但是,当您使用Wifi连接到本地网络时,可以使用Wifi连接访问此网络地址。
如果您想从两者(移动数据和wifi)访问您的网络服务,那么您需要在实时IP上广播它们。
Wifi连接允许您访问本地网络服务,而移动数据仅允许实时可用的网络服务。
答案 3 :(得分:-1)
改造不慢......可能是你的服务器很慢
请将okHttp配置上的socketTimeOut时间更改为1分钟。
compile 'com.squareup.okhttp:okhttp:3.x.x'
2。添加以下行:
final OkHttpClient okHttpClient = new OkHttpClient.Builder()
.readTimeout(60, TimeUnit.SECONDS)
.connectTimeout(60, TimeUnit.SECONDS)
.build();
3。现在设置config:
return new RestAdapter.Builder()
.setEndpoint(BuildConfig.BASE_URL)
.setConverter(new GsonConverter(gson))
.setClient(new OkClient(okHttpClient))
.build();
无法从互联网访问本地IP,在端口80上运行本地服务器并从ip网站获取主要的互联网IP,例如:https://www.whatismyip.com/并连接到此IP。