如何使用android模拟器测试在localhost上返回JSON的服务

时间:2013-11-22 15:33:09

标签: java android json rest dropwizard

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

它会在此网址上返回以下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需要放在互联网可访问的服务器上,用于生产应用程序,但出于开发目的,解决此问题的方法是什么?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

如果要从仿真器在localhost上测试服务器,则有两个选项:

  1. 调用IP地址10.0.2.2而不是localhost
  2. 从192.168.x.x
  3. 开始,调用计算机的路由器IP地址

    希望它有所帮助。