Android与本地Tomcat的连接

Android与本地Tomcat的连接

知道大家是否想试一下用Android模拟器如何访问自己建的Web站点呢

下面我将讲一下如何实现 

Step 1:我用的Tomcat作为本地服务器,Webapps这个目录里,把我的名为kankongWeb工程放进来,启动Tomcat服务器
在浏览器里输入: http://localhost(或者127.0.0.1):8080 nkong/index.html将出现如下界面

Step 2:启动Android 模拟器如果你在Eclipse里已经启动了Android模拟器就跳过此步.我们如何手动启动Android模拟器呢
首先运行cmd出现我们习惯的黑屏,输入Android list avd(列出所有AVD模拟器
然后我们选择其中一个启动以Android 1.5为例子:emulator -debug avd_config -avd android 1.5: 出现我们熟悉的画面如下

Step 3:打开浏览器输入 http://localhost:8080/kankong/index.html? 
我们的第一想法是输入 http://localhost:8080/kankong/index.html, 
可是这将不会成功,为什么呢?问题是这样的,Android模拟(simulator)把它自己作为了localhost, 
也就是说,代码中使用 localhost或者127.0.0.1来访问,都是访问模拟器自己!这是不行的!如果你想在模拟器simulator上面访问你的电脑,那么就使用 android内置的IP 10.0.2.2 吧, 10.0.2.2 是模拟器设置的特定ip,是你的电脑的别名alias记住, 
在模拟器上用10.0.2.2访问你的电脑本机也就是输入 http://10.0.2.2:8080/kankong/index.html 将 出现如下界面: (请记住: http://10.0.2.2:端口号如果你的默认端口是80,可以直接输入 http://10.0.2.2 OK~这样就大功告成了

今天学习网络连接遇到了一个问题就是:

android java.net.ConnectException: Connection 127.0.0.1:8080 refused

解决方法如下:

调试中通过android simulator模拟器链接localhost或者127.0.0.1,因为我在电脑上面建立了apache,我的代码大概就是
URL url = new URL(urlString); 
    URLConnection urlconn = url.openConnection();

但是报错了!!

Exception 1:java.net.ConnectException: localhost/127.0.0.1:8080 - 
Connection refused

问题是这样的,android模拟器(simulator)把它自己作为了localhost,也就是说,代码中使用localhost或者127.0.0.1来访问,都是访问模拟器自己!这是不行的!

如果你想在模拟器simulator上面访问你的电脑,那么就使用android内置的IP 10.0.2.2 吧,  10.0.2.2 是模拟器设置的特定ip,是你的电脑的别名alias

记住,在模拟器上用10.0.2.2访问你的电脑本机

不能直接访问localhost 或者127.0.0.1  这样直接访问到andoird 本机, 可以用直接IP地址访问 
CMD 输入ipconfig 可以查看IP

我也遇到了这个问题,根据5楼的回答是做出来了。
这样是可以在项目里面访问到特定的地址,但是如果想直接在虚拟机里面打开其他网址还是不行啊。
我电脑很奇怪,1.6的虚拟机直接就可以在虚拟机里面上网,运行应用程序甚至都不用在mannifest中加入权限的那行代码,都可以运行。但是2.2就不行了,在虚拟机里用任何网址都是提示网页不可用错误。
不知道有没有让2.2虚拟机也能直接上网的方法。

localhost访问的是模拟器自己的IP,在模拟器上访问电脑当然要写电脑的IP

终于把MP3player项目完成了,虽然很简单但是还有点成就感

中间遇到一些简单的问题想必初学者会遇到

1.Android访问自己电脑Tomcat服务器出现connection refused

127.0.0.1 是 Android 模拟器设务自己的回送接口(既localhost)。

所以不能使用电脑连接android模拟器。                  

访问自己电脑上配置的tomcat服务器时有两种方法:

(1):使用自己电脑的ip地址

(2):可以用android内置IP 10.0.2.2

获取IP地址:

可用 ipconfig 查询IP 

2.乱码问题

解决方法如下:

1.中文MP3名字下载问题

http://192.168.1.104:8080/mp3/a1.mp3这样可以下载到

http://192.168.1.104:8080/mp3/十年.mp3   出现中文名字就下载不到了。

解决方法:

1.修改Tomcat服务器conf\server.xml 这个文件。打开找到8080(我的Tomcat有两段port="8080",反正我两段都加了),在最后加上 URIEncoding="utf-8"

<Connector port="8080" protocol="HTTP/1.1" 

               connectionTimeout="20000" 

               redirectPort="8443" 

               URIEncoding="utf-8"/>

2.程序中修改“中文”的编码。关键代码URLEncoder.encode("string","utf-8");(只要把中文部分转编码就可以了)mp3info.getMp3Name()取得MP3的名字。

utfname=URLEncoder.encode(mp3info.getMp3Name(),"utf-8");

mp3url="http://192.168.1.104:8080/mp3/"+utfname;

URL url=new URL(mp3url);

这样就可以下载MP3文件了

=================================================================================

2.XML读取得中文的问题

解决方法:在InputStreamReader中设置编码为gb2312

还有歌词问题:

关键代码: InputStreamReader(inputStream,"GB2312");

好像有InputStreamReader的地方都要用"GB2312","UTF-8"不行.

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2011-10/44804.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值