Android 网络通信基类的实现

为了方便我们与服务器的通信,,我们需要实现一个网络通信基类。

实现代码如下:

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import com.jikexueyuan.secret.Config;import android.os.AsyncTask;public class NetConnection {/**** @param url 通信地址* @param method 通信方法 get post* @param successCallback 通知调用者 成功* @param failCallback 通知调用者 失败* @param kvs 通信可变字符串参数*/public NetConnection(final String url,final HttpMethod method,final SuccessCallback successCallback,final FailCallback failCallback,final String …kvs){//网络链接会阻塞主线程,需要异步任务执行网络链接new AsyncTask<Void, Void, String>() {@Overrideprotected String doInBackground(Void… arg0) {StringBuffer paramsStr = new StringBuffer();for (int i = 0; i < kvs.length; i+=2) {paramsStr.append(kvs[i]).append("=").append(kvs[i+1]).append("&");}try {URLConnection uc;switch (method) {case POST: //以post方式通信uc = new URL(url).openConnection();uc.setDoOutput(true);BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(uc.getOutputStream(), Config.CHARSET));bw.write(paramsStr.toString());bw.flush();break;default: //以get方式通信uc = new URL(url+"?"+paramsStr.toString()).openConnection();break;}System.out.println("Request url:"+uc.getURL());System.out.println("Request data:"+paramsStr);BufferedReader br = new BufferedReader(new InputStreamReader(uc.getInputStream(), Config.CHARSET));String line = null;StringBuffer result = new StringBuffer();while((line=br.readLine()) != null){result.append(line);}System.out.println("Result" + result);return result.toString();} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}//通知调用者@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);if(result != null){if(successCallback != null){successCallback.onSuccess(result);}}else{if(failCallback != null){failCallback.onFaid();}}}}.execute();}public static interface SuccessCallback{void onSuccess(String result);}public static interface FailCallback{void onFaid();}}

如此锐气,二十后生有之,六旬男子则更多见。

Android 网络通信基类的实现

相关文章:

你感兴趣的文章:

标签云: