我的开发框中有一个在Visual Studio中运行的ASP.NET Web API服务。我很容易从I.E.获得正确的结果。或输入:http://localhost:61420/api/products
或FireFox。但是当我尝试使用我的AVD从我的Android项目中读取它时,我会得到一个例外:
localhost / 127.0.0.1:61420 - 拒绝连接。
我知道我的Android Java代码有效,因为我可以访问在我的网站上运行的WCF RESTFul服务(当前已注释掉的URL)。我的Android代码粘贴在下面。
那么,为什么我从Eclipse项目访问时遇到错误,而不是从浏览器访问时出错? 感谢
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
HttpURLConnection urlConnection = null;
try
{
//URL url = new URL("http://www.deanblakely.com/myRESTService/SayHello");
URL url = new URL("http://localhost:61420/api/products");
urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
String myString = readStream(in);
String otherString = myString;
otherString = otherString + " ";
}
catch (MalformedURLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
urlConnection.disconnect();
}
}
private String readStream(InputStream is)
{
try
{
ByteArrayOutputStream bo = new ByteArrayOutputStream();
int i = is.read();
while(i != -1)
{
bo.write(i);
i = is.read();
}
return bo.toString();
}
catch (IOException e)
{
return "" + e;
}
}
}
答案 0 :(得分:2)
Visual Studio开发Web服务器仅接受来自本地主机的连接,而不接受通过网络或其他虚拟连接的连接。听起来像AVD被视为远程主机。
答案 1 :(得分:1)
要从任何地方访问该应用,请更改应使用的网络服务器。假设您使用的是Windows 7和Visual Studio 2010,请确保安装了IIS并安装了所有必需的功能,并将本地IIS设置为项目设置中的Web服务器:
可能需要以管理员身份启动Visual Studio以使用本地IIS运行它。
答案 2 :(得分:0)
使用机器的实际IP地址,即http://192.168.0.xx
只有您的本地计算机才能访问localhost,如果您在模拟器或设备上,它将通过NAT或来自路由器的DHCP具有不同的IP。