我写了一个很简单的Servlet
public class TestServlet extends HttpServlet
{
public void doGet ( HttpServletRequest request , HttpServletResponse response ) throws ServletException , IOException
{
PrintWriter out = response.getWriter();
out.println("Hello World!!!!!!!!!!!!!!");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}
}
部署在Tomcat上,在浏览器中http://localhost:8080/mapservice/hello可以正常访问到
但是在Android中怎么都访问不了,在client.execute(getMethod)会卡很长一段时间,然后报
org.apache.http.conn.HttpHostConnectException: Connection to http://10.0.2.2:8080 refused;
代码如下
try
{
DefaultHttpClient client=new DefaultHttpClient(new BasicHttpParams());
HttpGet getMethod = new HttpGet("http://10.0.2.2:8080/mapservice/hello");
HttpResponse httpResponse = client.execute(getMethod);
// statusCode == 200 正常
int statusCode = httpResponse.getStatusLine().getStatusCode();
// 处理返回的httpResponse信息
// String result2 = retrieveInputStream(httpResponse.getEntity());
}
catch (Exception e)
{
Toast.makeText(context, "连接失败", Toast.LENGTH_LONG).show();
}
用户权限也已经添加<uses-permission android:name="android.permission.INTERNET"></uses-permission>
我都要被搞疯了,想做一个网络应用,已经试过WCF,WebService都不行,要是Servlet还不行我就没办法了。。
不知道到底是Android的设置问题还是服务器那边的配置问题
或者哪位大哥可以给个成功的代码给我不,小弟感激不尽
------解决方案--------------------
请问你是用真机还是模拟器测试的?模拟器应该是可以访问本机的地址,真机的话,是无法访问的
------解决方案--------------------
http://10.0.2.2:8080/mapservice/hello
建议先把这个地址在浏览器中打开看看,如果浏览器就打不开,那肯定是没有办法连接上的。
------解决方案--------------------
先用你的模拟器上的浏览器访问http://10.0.2.2:8080/mapservice/hello,如果有结果,那么模拟器访问你的servlet是没问题的、然后就要检查你的logcat,看看你的android代码有什么问题、可以贴出来,我看看~
------解决方案--------------------
浏览器打不开说明是你的模拟器和pc没连接上。。。你问问谷歌度娘怎么连接吧