首页 > 系统 > Android > 正文

Android自定义网络连接工具类HttpUtil

2019-10-22 18:22:59
字体:
来源:转载
供稿:网友

本文实例为大家分享了Android网络连接工具类HttpUtil的使用方法,供大家参考,具体内容如下

该工具实现了发送get和post请求,请求的结果以String字符串的形式返回,比较适合接收服务器端发送过来的JSON字符串数据

get方法适合从服务器端获取数据
post方法适合发送数据到服务器端

使用的时候直接调用get或post方法就好

get方法传递一个url请求
post方法传递一个url请求和要发送到服务器端的数据params

接收数据后返回的是一个String字符串

HttpUtil.java

public class HttpUtil{   /**    * POST方法提交HTTP请求,返回请求的结果    *    * @param url    * @param params    * @return 请求结果    * @throws IOException    */   public static String sendPost(String url, String params) throws IOException {     StringBuffer result = new StringBuffer();      // 创建URL对象     URL _url = new URL(url);     // 创建HTTP连接     /**      * 使用.openConnection()方法实例化一个URLConnection对象      * */     HttpURLConnection conn = (HttpURLConnection) _url.openConnection();          // 以下设置网络连接的相关参数     /* 使用POST方法进行请求传递时,必须定义setDoInput和setDoOutput方法 */     // 设置输入可用     conn.setDoInput(true);     // 设置输出可用     conn.setDoOutput(true);      // 设置不使用缓存     conn.setUseCaches(false);     // 设置连接超时的时间 - 5s     conn.setConnectTimeout(5000);     // 设置读取超时的时间 - 5s     conn.setReadTimeout(5000);     // 设置HTTP请求的方法 - POST     conn.setRequestMethod("POST");     // 设置HTTP请求属性 - 连接方式:保持     conn.setRequestProperty("Connection", "Keep-Alive");     // 设置HTTP请求属性 - 字符集:UTF-8     conn.setRequestProperty("Charset", "UTF-8");     // 设置HTTP请求属性 - 传输内容的类型 - 简单表单     conn.setRequestProperty("Content-Type",         "application/x-www-form-urlencoded");     // 设置HTTP请求属性 - 传输内容的长度     conn.setRequestProperty("Content-Length",         String.valueOf(params.length()));     // 设置HTTP请求属性 - 用户代理     conn.setRequestProperty("User-Agent",         "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0");     // 发送参数 ,采用字符流发送数据     PrintWriter pw = new PrintWriter(conn.getOutputStream());     pw.write(params);     pw.flush();     pw.close();     // 获取返回的结果     if (200 == conn.getResponseCode()) {// 判断状态码       // 读取服务器返回的 结果 - 字符流       BufferedReader br = new BufferedReader(new InputStreamReader(           conn.getInputStream()));       // 每次读取一行       String line;       while((line = br.readLine()) != null){         result.append(line);       }     }     // 关闭HTTP连接     conn.disconnect();     return result.toString();   }    /**    * GET方法提交HTTP请求,返回请求的结果    * @param url    * @return 请求的结果    * @throws IOException    */   public static String sendGet(String url) throws IOException {      StringBuffer result = new StringBuffer();     // 创建URL对象     URL _url = new URL(url);     // 创建HTTP连接     HttpURLConnection conn = (HttpURLConnection) _url.openConnection();     // 设置网络连接的相关参数     // 设置输入可用     conn.setDoInput(true);     // 设置输出可用     conn.setDoOutput(true);     // 设置不使用缓存     conn.setUseCaches(false);     // 设置连接超时的时间 - 5s     conn.setConnectTimeout(5000);     // 设置读取超时的时间 - 5s     conn.setReadTimeout(5000);     // 设置HTTP请求的方法 - GET     conn.setRequestMethod("GET");     // 设置HTTP请求属性 - 连接方式:保持     conn.setRequestProperty("Connection", "Keep-Alive");     // 设置HTTP请求属性 - 字符集:UTF-8     conn.setRequestProperty("Charset", "UTF-8");     // 设置HTTP请求属性 - 用户代理     conn.setRequestProperty("User-Agent",         "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0");     // 获取返回的结果     if (200 == conn.getResponseCode()) {// 判断状态码       BufferedReader br = new BufferedReader(new InputStreamReader(           conn.getInputStream()));       // 每次读取一行       String line;       while((line = br.readLine()) != null){         result.append(line);       }     }     // 关闭HTTP连接     conn.disconnect();     return result.toString();   } } 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表