3.18 通过http访问服务器

今天按时间看了下android通过http的get/post两种方法访问服务器的知识。

通过Android真机访问web应用的一个servlet,

URL url = new URL("http://localhost:8080/testShooping/sg");

但一直报 localhost/127.0.0.1:8080 - Connection refused

上网查:原来android模拟器(simulator)把它自己作为了localhost,也就是说,代码中使用localhost或者127.0.0.1来访问,都是访问模拟器自己

解决方法:cmd——》ipconfig/all——》获得本机ip——》修改URL url = new URL("http://本机ip:8080/Test1/servlet/ServletDemo");但试了也不行。

再上网查:模拟器默认10.0.2.2是本机地址,于是把地址改成10.0.2.2还是不行。

郁闷中。。。

突然想到它都说模拟器呢,那就不用真机了,用模拟器试试。

cao,一试模拟器用第一个方法的局域网地址192.168.2.57和第二个方法10.0.2.2都行,搞了我这么久,郁闷。。。

后来又试了真机和模拟器访问www.baidu.com都行,都有数据返回。


我是使用HttpURLConnection接口的,get/post方法网上一大把就不在这里写了。

web项目只有一个servlet,超简单:

public class ShowGoodsClServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
System.out.println("username:"+request.getParameter("username"));
response.getOutputStream().print("ok");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
}

不过要记得在web.xml中配置:

  <servlet>
    <servlet-name>sg</servlet-name>
    <servlet-class>com.sp.servlet.ShowGoodsClServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>sg</servlet-name>
    <url-pattern>/sg</url-pattern>
  </servlet-mapping>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值