野人学Android基础篇之网络通讯第二课--本地apache服务器与Android的连接

写在开头

按照现在流行的说法,我只能算个野生程序员。没有上过专业的课,也没有受过专业的训练,当然也没有专业的工作背景,所以面对网络上传统的Android连接Apache Tomcat的方式,我是看不懂的,因为毕竟要涉及到JSP的知识。而我有php的开发经验,所以最开始想到的是利用php来编写服务器语言。一旦选择了php,那么就要放弃现成的Apache Tomcat服务器,去百度Apache连接Android的知识。

--------------------------------------------------分割线------------------------------------------

我的电脑上已经安装了Apache2.2.17,那么怎么将Android的app连接上本地Apache呢?我开始了第一次尝试。

1.按照百度到的知识,运行了"cmd",然后输入“ipconfig”,出现了如下的界面;

野人学Android基础篇之网络通讯第二课--本地apache服务器与Android的连接_第1张图片

注:红圈内的ip就是本地电脑在局域网中的地址。

2.将获取到的ip传输到上一节课中写的程序中,如图;

野人学Android基础篇之网络通讯第二课--本地apache服务器与Android的连接_第2张图片

注:红圈内的url地址是本地Apache服务器的一个地址,".../test/index.php"是我预先写好的php文件。

3.很遗憾,app没有启动成功,系统崩溃了,最后查找到的报错问题如下:


注:对于一个野生程序员来说,这个报错就好比天书,我完全看不懂。这时候只能求助度娘了,可是度娘上也只是说资源地址不对,顿时千万个草泥马在心里狂奔而过。

4.度娘虽然没有直接告诉我答案,但还是给了我一些蛛丝马迹。度娘告诉我,Android模拟器相当于一台设备,要想访问本地服务器,不能通过"localhost"或者"127.0.0.1"来访问,那么我就在想要想让Android模拟器访问到我的本地Apache,就相当于让一台在局域网中的设备访问到我的Apache服务器。于是找来朋友的电脑在局域网中测试,不管用localhost还是ip地址,都无法访问。然后查了很多资料,终于找到了方法,就是修改Apache的http.conf的内容,如下:

野人学Android基础篇之网络通讯第二课--本地apache服务器与Android的连接_第3张图片

注:1.将"Deny from all"注释掉,其意思就是禁止其他设备的访问;2.这个ip地址是本地服务器的地址,当然你可以不写;3.因为本地局域网的地址是"192.168.1"开始的,而局域网中的设备只有最后一位ip不同,用"*"表示局域网中所有的设备均能访问本地服务器。


经过上面的探索,最后发现Android模拟器能返回Apache服务器中数据,顿时感觉好兴奋!只是在运行程序之前,要先检查下局域网的ip,在http.conf中进行修改。

-----------------------------------------分割线-----------------------

这是我写的第20篇博客,也是本系列的最后一篇。回头想想,2010年末学习php,2011年获得省级比赛三等奖,2012年读研中断了一年,2013年暑假在一家小网络公司实习,2014年参加与编程无关的工作,2015年开始学习Java和Android。我错过了网站的黄金发展期,后来又错过了移动app的黄金发展期。我本来可以安分守己,日复一日地工作,用时间换取未知的升职加薪的机会,但是我不甘于平庸,不想浪费年轻的资本,坚持学习了两个月。现在也算是将基础的知识学完了,剩下来想通过几个项目开发来增强开发经验,因为我知道只有实战才能磨练一个人的能力。

明天就是月饼节了,祝自己和家人,也祝将这篇博文看完的你,月饼节快乐!

你可能感兴趣的:(android)