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(安卓)ProgressBar 史上最强大讲解
  2. Android(安卓)应用语言设置的实现
  3. 设置系统超时时间
  4. android studio添加忽略文件
  5. Android(安卓)ImageView图片自适应大小
  6. Android(安卓)打开系统设置
  7. Android(安卓)Layout XML属性
  8. Android快速开发框架之xUtils---图片模块
  9. Android设置透明、半透明等效果

随机推荐

  1. Android(安卓)调用系统相机返回data为nul
  2. Android(安卓)解决离线路由GraphHopper
  3. Android(安卓)Studio 真机调试vivo系列手
  4. Appium环境搭建教程
  5. Android(安卓)SharedPreferences 与 SQLi
  6. EventBus的使用详解
  7. android Studio与数据库SQLserver连接实
  8. 实现android轮播图的开源组件--Android-C
  9. Android(安卓)反编译:加固前后对比
  10. android EditText 下划线样式