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访问服务器,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。