首页 > 代码库 > Android访问服务器
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 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 = http://www.mamicode.com/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行是发送请求并返回服务器应答的数据。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。