关于安卓怎样访问电脑网站的问题解答
一、
在电脑上搭建好了Tomcat,通过localhost:8080访问Tomcat的主页保证是没问题的,同时保证访问http://localhost:8080/index.jsp也没问题。二、手机打开WIFI并连接,调试程序的时候可能会发现网络连接的错误,代码如下:(布局只有一个TextView)[java]view plaincopy- publicclassMainActivityextendsActivity{
- booleanflag=false;
- TextViewinfo=null;
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- info=(TextView)super.findViewById(R.id.info);
- finalHandlerhandler=newHandler(){
- @Override
- publicvoidhandleMessage(Messagemsg){
- super.handleMessage(msg);
- if(flag){
- info.append("用户登录成功!");
- }else{
- info.append("用户登录失败!");
- }
- //Bundledata=msg.getData();
- //Stringval=data.getString("value");
- //Log.v("mylog","请求的结果为--》"+val);
- }
- };
- Runnablerunnable=newRunnable(){
- @Override
- publicvoidrun(){
- try{
- Log.e("测试","连接开始");
- URLurl=newURL("http://172.21.14.195:8080/myWeb/"
- +"android.jsp?id=lixinghua&password=mldn");
- HttpURLConnectionconn=(HttpURLConnection)url
- .openConnection();
- conn.connect();
- Log.e("测试","连接完成");
- intres=conn.getResponseCode();
- Log.e("测试",String.valueOf(res));
- byte[]data1=newbyte[512];
- intlen=conn.getInputStream().read(data1);
- Log.e("测试","读取数据完成");
- if(len>0){
- Stringtemp=newString(data1,0,len).trim();
- flag=Boolean.parseBoolean(temp);
- }
- conn.getInputStream().close();
- //Messagemsg=newMessage();
- //Bundledata=newBundle();
- //data.putString("value","请求结果");
- //msg.setData(data);
- handler.sendEmptyMessage(0);
- }catch(Exceptione){
- Log.e("异常",Log.getStackTraceString(e));
- }
- }
- };
- newThread(runnable).start();
- }
结果在conn.connect()处出现了异常,后来发现电脑的本地IP地址为172.21.14.195而手机的IP地址为192.168.191.2,不在同一个网段(在打开网络与共享中心可以查看,本地地址的掩码为255.255.254.0,两IP地址前23位的网络地址不一样),然后无法访问电脑上的Tomcat网页,都是万恶的WIFI共享和校园网惹的祸。
三、
这个时候呢我们会看到另一个网络连接,如图:; background-attachment: initial; background-color: inherit; background-size: initial; background-origin: initial; background-clip: initial; background-position: 0% 0%; background-repeat: no-repeat;)
- flag=Boolean.parseBoolean(temp)后才被执行,才能正确的更新UI。直接在onCreate中处理的话很可能flag还来不及改变
),如上面代码所示。
五、附上一张手机登陆Tomcat主页的截图