package com.zwk.ezandroid.common;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.util.Log;import com.zwk.ezandroid.App;import com.zwk.ezandroid.common.util.L;import com.zwk.ezandroid.common.util.T;import com.zwk.ezandroid.common.widget.WKDialog;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.Map;public class WKHttp {    Handler handler;    public static void post( String url, Map requestBody, WKHttpCallback call){        http_Async(url,"POST",requestBody,null,call);    }    public static void get( String url, Map requestBody,WKHttpCallback call){        http_Async(url,"GET",requestBody,null,call);    }    public static void post( String url, Map requestBody, Map requestHeader, WKHttpCallback call){        http_Async(url,"POST",requestBody,requestHeader,call);    }    public static void get( String url, Map requestBody, Map requestHeader, WKHttpCallback call){        http_Async(url,"GET",requestBody,requestHeader,call);    }    public static void http_Async(final String url,final String httpMethod,final Map requestBody,final Map requestHeader,final WKHttpCallback call){        final WKHttp http = new WKHttp();        final Handler handler = http.getHandler(call);        new Thread(new Runnable() {            @Override            public void run() {                http.http_Sync(url,httpMethod,requestBody,requestHeader,handler);            }        }).start();    }    public void http_Sync(String url,String httpMethod,Map param,Map requestHeader,Handler handler) {        HttpURLConnection httpConnection = null;        StringBuilder builder=new StringBuilder();        try {            StringBuilder params=new StringBuilder();            for(Map.Entry entry:param.entrySet()){                params.append(entry.getKey());                params.append("=");                params.append(entry.getValue().toString());                params.append("&");            }            if(params.length()>0){                params.deleteCharAt(params.lastIndexOf("&"));            }            URL restServiceURL = new URL(url+(params.length()>0 ? "?"+params.toString() : ""));            Log.e("zwk",restServiceURL.toString());            httpConnection = (HttpURLConnection) restServiceURL.openConnection();            httpConnection.setRequestMethod(httpMethod);            httpConnection.setRequestProperty("Content-type", "application/json");            if(null!=requestHeader){                for(Map.Entry entry:requestHeader.entrySet()){                    httpConnection.setRequestProperty(entry.getKey(),entry.getValue());                }            }            if (httpConnection.getResponseCode() != HttpURLConnection.HTTP_OK) {                Message errMsg = Message.obtain();                errMsg.what = 1;                errMsg.obj=httpConnection.getResponseCode();                handler.sendMessage(errMsg);            }else{                InputStream inStrm = httpConnection.getInputStream();                byte []b=new byte[2048];                int length=-1;                while((length=inStrm.read(b))!=-1){                    builder.append(new String(b,0,length));                }                L.e("--------------------");                L.e(builder.toString());                Message msg = Message.obtain();                msg.what = 0;                msg.obj=builder.toString();                handler.sendMessage(msg);            }        } catch (Exception e) {            e.printStackTrace();        } finally {            if (httpConnection != null) {                httpConnection.disconnect();            }        }    }    private Handler getHandler(final WKHttpCallback call){        if(null==handler){            handler = new Handler(Looper.getMainLooper()){                @Override                public void handleMessage(Message msg) {                    super.handleMessage(msg);                    String resultJson=msg.obj+"";                    if(msg.what==0){                        call.OnCall(resultJson);                    }else{                        WKDialog.showProgressDialog(false,SFAApplication.getRootContext(),"正在发送验证码..");                        T.toast("服务器错误,code="+resultJson);                    }                }            };        }        return handler;    }    public interface WKHttpCallback{        void OnCall(String jsonStr);    }}

 

更多相关文章

  1. Android(安卓)支付宝相关问题
  2. Android实现订单倒计时功能
  3. 关于Listview的一个没有notifyDataSetChanged导致的错误
  4. 简单实现android短信发送器
  5. 介绍 Android(安卓)DropBoxManager Service
  6. Android练习之Intent发邮件ACTION_SEND
  7. android studio网络图片浏览器
  8. android 蓝牙发送数据
  9. android支付宝 KeyFactory PrivateKey

随机推荐

  1. Android:EditText 多行显示、属性汇总、族
  2. 【android 其他】转载:Android(安卓)简史
  3. Android(安卓)TextView内容过长加省略号,
  4. android的对话框
  5. ActionBar
  6. Android(安卓)activity属性设置大全
  7. Android开发EditText属性
  8. 【Android】Android(安卓)apk默认安装位
  9. android底层开发-android基础架构
  10. Android_传感器综述