0

我在 localhost:8080 上运行了一个 dropwizard 服务。

它在此 url 上返回以下 json:http://localhost:8080/users/johndoe/items

[
{
"id": 1,
"name": "Item1"
},
{
"id": 2,
"name": "Item 2"
},
{
"id": 7,
"name": "Item 3"
},
{
"id": 8,
"name": "Item4"
}
]

当我尝试从我的 android 模拟器访问此 URL 时,我收到此异常:

org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:8080 refused

在我的清单中,我已授予互联网权限

<!-- Permission - Internet Connect -->
<uses-permission android:name="android.permission.INTERNET" />

<!-- Network State Permissions -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

我也试过localhost改成127.0.0.1无济于事

问题

我知道 API 需要放在可通过互联网访问的服务器上以用于生产应用程序,但出于开发目的,解决此问题的方法是什么?

4

2 回答 2

6

localhost 是指模拟器的地址。如果要访问运行模拟器的计算机,请使用10.0.2.2主机的默认 IP 地址。

于 2013-11-22T15:35:08.283 回答
1

如果你想通过模拟器在 localhost 上测试你的服务器,你有两个选择:

  1. 调用 IP 地址 10.0.2.2 而不是 localhost
  2. 调用你电脑的路由器IP地址,以192.168.xx开头

希望能帮助到你。

于 2013-11-22T15:36:25.623 回答