做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 block37                 e.printStackTrace();38             } catch (IOException e) {39                 // TODO Auto-generated catch block40                 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行是发送请求并返回服务器应答的数据。

更多相关文章

  1. Android 操作SQLite数据库(初步)-在程序中删除数据库
  2. Android中如何修改系统时间
  3. Android HTTP 实现与服务器通信
  4. android通过php连接mysql数据库!!!!
  5. Android接收jsp中动态生成的xml或json数据。
  6. 在Android中把SQLite的数据库文件存储在SD卡中【转】
  7. Android基于XMPP Smack Openfire开发IM【三】客户端接收服务器发
  8. Android百度地图一种简单实现多标注及响应时间的方法

随机推荐

  1. Android重力感应开发
  2. Flutter之请求权限(适配android)
  3. Android中如何修改系统时间
  4. HTTP Server 'Bad Gateway' ( Android(安
  5. Android开发包下载
  6. android通过web service调用查询手机归属
  7. Android APN设置
  8. Android应用安全检测工具简介
  9. Android 1.5 SDK, Release 1 翻译完后全
  10. Android SDK 镜像站