Android访问服务器

做cocos2dx已经有好一段时间了,在这段时间里,也不断接触android。一直没有时间写下自己的工作经历,今天抽点时间记下一段。

关于android访问服务器获取数据的方法:

传输协议使用http通信方式,本次使用的是POST。http协议的pathname存放在变量cmd中,协议的内容格式为json。

 1 String urlStr = "http://219.234.95.44:6789" + cmd;//"10.1.30.220";
 2 //            urlStr = urlStr + "/getName";
 3 //            urlStr = "http://www.baidu.com/";
 4             URL url = null;
 5             String result = null;
 6             try {
 7                 url = new URL(urlStr);
 8                 HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();
 9                 urlConn.setDoInput(true);
10                 urlConn.setDoOutput(true);
11                 urlConn.setRequestMethod("POST");
12                 urlConn.setUseCaches(false);
13 //                urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
14                 urlConn.setRequestProperty("Content-Type", "application/x-java-serialized-object");
15                 urlConn.setRequestProperty("Charset", "utf-8");
16                 urlConn.setConnectTimeout(20000);
17                 urlConn.connect();
18
19                 DataOutputStream dop = new DataOutputStream(urlConn.getOutputStream());
20                 if(param != null)
21                     dop.writeBytes(param);
22                 dop.flush();
23                 dop.close();
24
25                 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
26
27                 String line = null;
28                 while((line = bufferedReader.readLine()) != null)
29                 {
30                     System.out.println(line);
31                     result = (result == null) ? line : result + line;
32                 }
33                 bufferedReader.close();
34                 urlConn.disconnect();
35             } catch (MalformedURLException e) {
36                 // TODO Auto-generated catch block
37                 e.printStackTrace();
38             } catch (IOException e) {
39                 // TODO Auto-generated catch block
40                 e.printStackTrace();
41             }
42
43             Message msg = new Message();
44             Bundle data = new Bundle();
45             data.putString("cmd", cmd);
46             data.putString("result", result);
47             msg.setData(data);
48             handler.sendMessage(msg);     

这段函数不要写在主界面线程,容易报异常。第三行为测试代码。

检测服务器是否运行正常,可以使用命令行Telnet功能,打开命令行输入Telnet,如果提示这个不是内部命令,请打开控制面板,选择程序,选择打开或关闭Windows功能,在弹出的对话框中查看“Telnet客户端”这一项,并且勾选上,点击确定关闭。下面就可以再命令行中使用Telnet命令了。

输入完成后输入“open 219.234.95.44 6789”,后面的端口号不能省略,并且前面不能加冒号。然后回车,如果没有提示错误,说明服务器正常。这段代码比较简单,这里就不加注释了。

其中第19行到第23行是设置向服务器发送数据的参数,第25行是发送请求并返回服务器应答的数据。

Android访问服务器

时间: 2024-10-18 00:14:44

Android访问服务器的相关文章

Android访问服务器(TOMCAT)乱码引发的问题(转载)

Android访问服务器(TOMCAT)乱码引发的问题 1.浏览器往服务器发送的请求主要可分为2种:get.post:delete.head等不赘述. GET方式: 从浏览器上直接敲地址,最大特点就是参数直接跟在地址后面. POST方式:表单提交等. 2.访问过程: 浏览器中输入地址 –> 浏览器对中文进行编码 –>发送到服务器 ->服务器进行解码 如何浏览器编码和服务器解码用的字符集不一致就会发生乱码问题. 3.乱码的解决 默认浏览器使用UTF-8编码(IE默认GBK当然可以通过met

android中的异步任务-----------AsyncTask的使用

遇到的问题 ------为什么要是红asyncTask 向服务器端发送一个http请求,服务器端返回给用户一些数据,然后将这些数据展示在ui当中 这时候就会出现一种现象:因为android访问服务器必须放在子线程当中,而ui的更新数据又必须放在主线程当中,所以当主线程展示数据的时候,遇到一些耗时操作 比如访问服务器,数据库查询等操作,主线程就会阻塞,用户就会看到ANR(程序未响应).而AsyncTask很好的解决了这一类问题 AsyncTask的使用方法 创建一个类MyTask继承自AsyncT

Android开发之注册登录

昨天给大家介绍了一下关于Android端向服务器端发送数据的方法,不过貌似有一点瑕疵,今天经过调试已经解决,在这里给大家介绍一下 貌似Android4.0以后版本的对于网络权限要求变得严格,导致昨天编写的小案例无法把数据发送到服务器端,当你一点击发送数据,Android控制台就会报错,错误当然是很让人头疼,基本上都是关于http的错误,所以可以肯定是Android虚拟机向服务器发送数据时出现了错误,我在网上查过后才知道,4.0之后的版本,主线程中不允许调用网络,如果你需要的话,应该另起一个线程处

访问Tomcat服务器返回数据乱码

前序: 在网络中,数据的传输,最常用的格式有两种:XML和JSON . 今天在做一个app版本更新检查.流程是: 1.Andriod客户端 向 Tomcat服务器 发起Http请求. 2.服务器响应并返回数据.返回的数据中,包含了新版app的特性和更新内容.并通过一个Dialog 对话框的形式,来告知用户,新版的app作了那些方面的改进.也就是调用dialog.setMessage()来设置消息内容,结果发现全是乱码. 3.之前一直没遇到这种情况,后来在QQ群了问了才知道,原来这个涉及到了编码的

转:RTC搭建android下三层应用程序访问服务器MsSql-客户端

原文:http://www.cnblogs.com/delphi007/p/3346084.html android下stringgrid已知问题: 通过点击时获取对应行的值有问题,在win下调试正常,在android下出现定位不准 二.客户端开发 1,新建工程 2,添加相关客户端控件TRtcHttpClient,TRtcClientModule,TRtcResult(2个) 3,设置相关属性TRtcHttpClient的服务器地址,端口,TRtcClientModule的client设置,以及

转:RTC搭建android下三层应用程序访问服务器MsSql-服务器端

原文:http://www.cnblogs.com/delphi007/p/3346061.html 前几天通过Ro搭建webservice,然后在android下调用,虽然已近成功,但是返回的数据库里的中文有乱码一直未得到解决!rtc6.23版本,已经支持xe5,也支持fmx的android下开发,不多说,需要的请联系购买! 一.创建服务端程序: 1依照官方的demo,创建程序,并添加datamoudel,添加rtc相关服务端控件TRtcHttpServer,TRtcServerModule,

Android初级教程:Android中解析方式之pull解析

在安卓中有很多种解析方式.按照大方向有xml解析和json解析.而,细致的分,xml和json解析各有自己的很多解析方式.今天这一篇主要介绍xml解析中的pull解析.对于xml的解析方式,我之前在javaweb一些知识中有写过dom和dom4j等等解析方式.有兴趣的读者可以去javaweb篇里面找相关的内容. 先自定义一个数据源,假设就是访问服务器返回的xml数据文件名称为weather.xml: <?xml version='1.0' encoding='utf-8' standalone=

Android网络:HTTP之利用HttpURLConnection访问网页、获取网络图片实例 (附源码)

http://blog.csdn.net/yanzi1225627/article/details/22222735 如前文所示的TCP局域网传送东西,除了对传输层的TCP/UDP支持良好外,Android对HTTP(超文本传输协议)也提供了很好的支持,这里包括两种接口: 1.标准Java接口(java.net) ----HttpURLConnection,可以实现简单的基于URL请求.响应功能: 2.Apache接口(org.appache.http)----HttpClient,使用起来更方

十大技巧优化Android App性能

无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的.那么,如何能开发出更高性能的Android App?相信是软件开发公司以及广大程序员们头疼的一大难题.今天,就给大家提供几个提高Android App性能的技巧. 高效地利用线程 1.在后台取消一些线程中的动作 我们知道App运行过程中所有的操作都默认在主线程(UI线程)中进行的,这样App的响应速度就会受到影响.会导致程序陷入卡顿.死掉甚至会发生系统错误.