我的应用无法发送 GET,OkHttp
My app can't send a GET, OkHttp
我有一个奇怪的问题。
我在 localhost:8080
中有服务,一切都配置良好,我可以通过 Android 设备(真实的,而不是模拟器)在浏览器中打开此服务。
在我看来,我的代码有问题。
但在应用程序中我得到了 java.net.ConnectException: Failed to connect to localhost/127.0.0.1:8080
这是我的代码:
private void sendGET() {
OkHttpClient.Builder client = new OkHttpClient.Builder();
client.authenticator(new Authenticator() {
@Override
public Request authenticate(Route route, Response response) throws IOException {
String credential = Credentials.basic("admin", "admin");
return response.request().newBuilder().header("Authorization", credential).build();
}
});
Request request = new Request.Builder()
.url("http://localhost:8080/users")
.build();
client.build().newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.w("http", e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.w("http", response.body().string());
}
});
}
这里有什么问题吗?
localhost
映射到实际 IP 地址的方式可能存在问题。尝试使用您的实际 IP 地址:
Request request = new Request.Builder()
.url("http://192.168.0.1:8080/users") // for example
.build();
以上假定 IP 地址为 192.168.0.1
。
要查找您的 IP 地址,请在 Windows 上键入 ipconfig
或在 Linux 上键入 ifconfig
。
我有一个奇怪的问题。
我在 localhost:8080
中有服务,一切都配置良好,我可以通过 Android 设备(真实的,而不是模拟器)在浏览器中打开此服务。
在我看来,我的代码有问题。
但在应用程序中我得到了 java.net.ConnectException: Failed to connect to localhost/127.0.0.1:8080
这是我的代码:
private void sendGET() {
OkHttpClient.Builder client = new OkHttpClient.Builder();
client.authenticator(new Authenticator() {
@Override
public Request authenticate(Route route, Response response) throws IOException {
String credential = Credentials.basic("admin", "admin");
return response.request().newBuilder().header("Authorization", credential).build();
}
});
Request request = new Request.Builder()
.url("http://localhost:8080/users")
.build();
client.build().newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.w("http", e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.w("http", response.body().string());
}
});
}
这里有什么问题吗?
localhost
映射到实际 IP 地址的方式可能存在问题。尝试使用您的实际 IP 地址:
Request request = new Request.Builder()
.url("http://192.168.0.1:8080/users") // for example
.build();
以上假定 IP 地址为 192.168.0.1
。
要查找您的 IP 地址,请在 Windows 上键入 ipconfig
或在 Linux 上键入 ifconfig
。