码迷,mamicode.com
首页 > 移动开发 > 详细

android之http工具封装类

时间:2015-05-24 23:27:12      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:


/**
* http工具类(利用java回掉机制)[注意:还是不能进行UI更新,依然是在子线程中进行的操作]
* 当多次使用http进行网络交互时,可以将其封装在一个类中
* 使用方法:
* 先建一个接口类:如下:
* public interface HttpCallbackListener{
*
* void onFinish(String response)
*
* void onError(Exception e)
*
* }
* 最后在调用类里面利用
* 如下:
*
*
* HttpUtil.sendHttpResquest(address,new HttpCallbackListener(){
* @Override
* public void onFinish(String response){
* //这里对要处理返回数据操作逻辑
*
* }
*
* @Override
* pubic void onError(Exception e){
*
* //这里对异常情况进行处理
*
*}
* })
*
*
* (java这里的回调机制用来解决服务器还没来得及响应时就执行结束的问题。。。。即时间问题,用回调不会去结束方法)
*
*/

 

public class HttpUtil{
public static void sendHttpRequest(final String address,final HttpCallbackListener listener){
new Thread(new Runnable(){
@Override
public void run(){
HttpURLConnection connection = null;
try{
URL url = new URL(address);
connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(800);
connection.setReadTimeout(8000);
connection.setDoInput(true);
connection.setDoOuput(true);
InputStream in = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine())!= null) {
response.append(line);
}
if(listener != null ){
listener.onFinish(response.toString());
}

}catch(Exception e){
listener.onError(e);
}finally{
if(connection != null){
connection.disconnect();
}
}
}

}).start();
}
}

android之http工具封装类

标签:

原文地址:http://www.cnblogs.com/anumbrella/p/4526701.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!