Android 应用网络通讯类

public class NetConnection {

	public NetConnection(final String url,final HttpMethod method,final SuccessCallback successCallback,final FailCallback failCallback,final String ...kvs){
		
		//避免阻碍主UI线程
		new AsyncTask<Void, Void, String>() {

			@Override
			protected String doInBackground(Void... params) {
				// TODO Auto-generated method stub
				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:
						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:
						uc = new URL(url+"?"+paramsStr.toString()).openConnection();
						break;
					}
					
					System.out.println("Request url:"+uc.getURL());
					System.out.println("Request date:"+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) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}
				return null;
			}
			
			@Override
			protected void onPostExecute(String result) {
				// TODO Auto-generated method stub
				//在此可操作主UI线程
				super.onPostExecute(result);
				if(result!=null){
					if(successCallback!=null){
						successCallback.onSuccess(result);
					}
				}else{
					if(failCallback!=null){
						failCallback.onFail();
					}
				}
			}
			
		}.execute();
	}
	
	public static interface SuccessCallback{
		void onSuccess(String result);
	}
	
	public static interface FailCallback{
		void onFail();
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值