Android的http通信,封装了一个Android与服务器进行http通信的类,代码实现和调用方法如下:
1、新建NetWork对象 NetWork netWork=new NetWork();
2、将即将上传的参数封装到一个Map对象中 ,例如

Map<String,String> map=new HashMap<String,String>();map.put("phone","phonevalue");map.put("password","passwordValue");

3、执行netWork对象的doGet()或doPost()方法

String result=netWork.doGet(map,URLValues);

NetWord.java

public class NetWork {    public String login(Map<String,String> map,String requestURL){        String result="";        try{            URL url=new URL(requestURL);            HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();            urlConn.setDoInput(true);//设置输入流采用字节流            urlConn.setDoOutput(true);//设置输出流采用字节流            urlConn.setRequestMethod("POST");            urlConn.setUseCaches(false);//设置缓存            // 设置请求的超时时间            urlConn.setReadTimeout(5000);            urlConn.setConnectTimeout(5000);            urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");//设置methed参数            urlConn.setRequestProperty("Charset", "utf-8");            urlConn.connect();//链接既往服务器发送消息            PrintWriter pw=new PrintWriter(urlConn.getOutputStream());            StringBuffer buffer=new StringBuffer();            for(Map.Entry<String, String> entry : map.entrySet()){                buffer.append(URLEncoder.encode(entry.getKey(), "utf-8") + "=" + URLEncoder.encode(entry.getValue(), "utf-8") + "&");            }            pw.print(buffer);            pw.flush();            pw.close();            InputStream inputStream=urlConn.getInputStream();            int httpCode=urlConn.getResponseCode();            if(httpCode==200){                byte[] bufferBytes = new byte[1];                BufferedReader bf=new BufferedReader(new InputStreamReader(inputStream, Charset.forName("utf-8")));                //定义String类型用于储存单行数据                String line=null;                //创建StringBuffer对象用于存储所有数据                StringBuffer sb=new StringBuffer();                while((line=bf.readLine())!=null){                    sb.append(line);                }                result=sb.toString();            }        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return result;    }    public String doGet(Map<String,String> map,String requestUrl){        String result="";        try{            StringBuffer buffer=new StringBuffer("?");            if(map!=null)            for(Map.Entry<String,String> mapItem:map.entrySet() ){                buffer.append(URLEncoder.encode(mapItem.getKey(), "utf-8")+"="+URLEncoder.encode(mapItem.getValue(), "utf-8")+"&");            }            URL url=new URL(requestUrl+buffer.toString());            HttpURLConnection conn=(HttpURLConnection)url.openConnection();            conn.setDoOutput(false);            conn.setDoInput(true);            conn.setRequestMethod("GET");            conn.setUseCaches(false);            conn.setConnectTimeout(5000);            conn.setReadTimeout(5000);            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");//设置methed参数            conn.setRequestProperty("Charset", "utf-8");            conn.connect();//链接既往服务器发送消息            InputStream inputStream=conn.getInputStream();            int httpCode=conn.getResponseCode();            if(httpCode==200){                byte[] bufferBytes = new byte[1];                BufferedReader bf=new BufferedReader(new InputStreamReader(inputStream, Charset.forName("utf-8")));                //定义String类型用于储存单行数据                String line=null;                //创建StringBuffer对象用于存储所有数据                StringBuffer sb=new StringBuffer();                while((line=bf.readLine())!=null){                    sb.append(line);                }                return sb.toString();            }        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return result;    }    public String doPost(Map<String,String> map,String requestURL){        String result="";        try{            URL url=new URL(requestURL);            HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();            urlConn.setDoInput(true);//设置输入流采用字节流            urlConn.setDoOutput(true);//设置输出流采用字节流            urlConn.setRequestMethod("POST");            urlConn.setUseCaches(false);//设置缓存            // 设置请求的超时时间            urlConn.setReadTimeout(5000);            urlConn.setConnectTimeout(5000);            urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");//设置methed参数            urlConn.setRequestProperty("Charset", "utf-8");            urlConn.connect();//链接既往服务器发送消息            PrintWriter pw=new PrintWriter(urlConn.getOutputStream());            StringBuffer buffer=new StringBuffer();            if(map!=null)            for(Map.Entry<String, String> entry : map.entrySet()){                buffer.append(URLEncoder.encode(entry.getKey(), "utf-8") + "=" + URLEncoder.encode(entry.getValue(), "utf-8") + "&");            }            pw.print(buffer);            pw.flush();            pw.close();            InputStream inputStream=urlConn.getInputStream();            int httpCode=urlConn.getResponseCode();            if(httpCode==200){                byte[] bufferBytes = new byte[1];                BufferedReader bf=new BufferedReader(new InputStreamReader(inputStream, Charset.forName("utf-8")));                //定义String类型用于储存单行数据                String line=null;                //创建StringBuffer对象用于存储所有数据                StringBuffer sb=new StringBuffer();                while((line=bf.readLine())!=null){                    sb.append(line);                }                result=sb.toString();            }        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return result;    }}

转载于:https://my.oschina.net/nandecanghai123/blog/1529308

更多相关文章

  1. Android 中解析JSON形式的数据
  2. Android应用程序组件Content Provider的共享数据更新通知机制分
  3. Android SQLite数据库升级的问题
  4. android bundle 对象 序列化
  5. 使用SharedPreferences存储和读取数据
  6. Android:Content Provider数据共享
  7. android中usb数据通信速率慢问题解决办法
  8. Android sqlite 数据库操作
  9. Android 自定义Listview 如何绑定Sqlite数据库数据

随机推荐

  1. android拾遗——Android(安卓)动画学习笔
  2. android代码混淆
  3. Android(安卓)游戏引擎libgdx 锁屏、电话
  4. android真机测试问题
  5. 「抄底 Android(安卓)内存优化 1」——
  6. Android(安卓)Studio 设置控件和颜色透明
  7. Android(安卓)ormlite 框架介绍
  8. android 4中新增的日历处理相关API
  9. Android(安卓)实现联网——在线程中联网
  10. Android网络连接处理学习笔记