当前位置: 移动技术网 > IT编程>移动开发>Android > Android网络通信的实现方式

Android网络通信的实现方式

2019年07月24日  | 移动技术网IT编程  | 我要评论

墙面马赛克,好色男女全集,农业致富技术

android网络编程分为两种:基于http协议的,和基于socket的。
基于http协议:httpclient、httpurlconnection、asynchttpclient框架等
基于socket
(1)针对tcp/ip的socket、serversocket
(2)针对udp/ip的datagramsocket、datagrampackage
(3)apache mina框架
一、httpurlconnection的实现方式

string response = null; 
url url = new url(path); 
httpurlconnection connection = (httpurlconnection) url.openconnection(); // 新建连接实例 
connection.setconnecttimeout(20000);// 设置连接超时时间,单位毫秒 
//connection.setreadtimeout(20000);// 设置读取数据超时时间,单位毫秒 
connection.setdoinput(true);// 是否打开输入流 true|false 
connection.setrequestmethod("post");// 提交方法post|get 
//connection.setusecaches(false);// 是否缓存true|false 
//connection.setrequestproperty("accept", "*/*"); 
//connection.setrequestproperty("connection", "keep-alive"); 
//connection.setrequestproperty("charset", "utf-8"); 
//connection.setrequestproperty("content-length", string.valueof(data.length)); 
//connection.setrequestproperty("content-type", "application/x-www-form-urlencoded"); 
connection.connect();// 打开连接端口 
int responsecode = conn.getresponsecode(); 
bufferedreader reader = null; 
if (responsecode == 200) { 
  reader = new bufferedreader(new inputstreamreader(connection.getinputstream(), "utf-8")); 
  stringbuffer buffer = new stringbuffer(); 
  string line = ""; 
  while ((line = reader.readline()) != null) { 
    buffer.append(line); 
  } 
  response = buffer.tostring(); 
} else { 
  response = "返回码:"+responsecode; 
} 
reader.close(); 
conn.disconnect(); 

二、httpclient实现方式

httpresponse mhttpresponse = null; 
httpentity mhttpentity = null; 
//创建httppost对象 
//httppost httppost = new httppost(path); 
//设置httppost请求参数 
//httppost.setentity(new urlencodedformentity(params,http.utf_8)); 
httpget httpget = new httpget(path);   
httpclient httpclient = new defaulthttpclient(); 
inputstream inputstream = null; 
bufferedreader bufreader = null; 
string result = ""; 
// 发送请求并获得响应对象 
mhttpresponse = httpclient.execute(httpget);//如果是“post”方式就传httppost  
if (mhttpresponse.getstatusline().getstatuscode() == httpstatus.sc_ok) { 
  // 获得响应的消息实体 
  mhttpentity = mhttpresponse.getentity(); 
  // 获取一个输入流 
  inputstream = mhttpentity.getcontent(); 
  bufreader = new bufferedreader(new inputstreamreader(inputstream));  
  string line = ""; 
  while (null != (line = bufreader.readline())) { 
    result += line; 
  } 
  //result = entityutils.tostring(mhttpresponse.getentity()); 
}  
if (inputstream != null) { 
  inputstream.close(); 
} 
bufreader.close(); 
if (httpclient != null) { 
  httpclient.getconnectionmanager().shutdown(); 
} 

三、实用asynchttpclient框架的实现方式

asynchttpclient client = new asynchttpclient();  
client.get(url, new asynchttpresponsehandler() {  
  @override  
  public void onsuccess(int i, header[] headers, byte[] bytes) {        
    string response = new string(bytes, 0, bytes.length, "utf-8");            
  }  
  @override  
  public void onfailure(int i, header[] headers, byte[] bytes, throwable throwable) {  
 
  }  
});  

四、使用webview视图组件显示网页

mywebview.getsettings().setjavascriptenabled(true);  
mywebview.setwebviewclient(new webviewclient() {  
  @override  
  public boolean shouldoverrideurlloading(webview view, string url) {  
    view.loadurl(url);  
    return true;  
  }  
});  
mywebview.loadurl("http://"+networkaddress);  

以上就是android中网络通信几种方式的全部内容,希望对大家的学习有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网