android开发,http工具类详解编程语言

android的HttpClient实现简单的get和post请求
  
/** 
 * Http工具类 
 */ 
public class HttpUtil { 
    // 创建HttpClient对象 
    public static HttpClient httpClient = new DefaultHttpClient(); 
    public static final String BASE_URL = ""; 
   
    /** 
     * get请求 
     *  
     * @param url 
     *            发送请求的URL 
     * @return 服务器响应字符串 
     * @throws Exception 
     */ 
    public static String doGet(String url) throws Exception { 
        // 创建HttpGet对象。 
        HttpGet get = new HttpGet(url); 
        // 发送GET请求 
        HttpResponse httpResponse = httpClient.execute(get); 
        // 如果服务器成功地返回响应 
        if (httpResponse.getStatusLine().getStatusCode() == 200) { 
            // 获取服务器响应字符串 
            HttpEntity entity = httpResponse.getEntity(); 
            InputStream content = entity.getContent(); 
            return convertStreamToString(content); 
        } 
        return null; 
    } 
   
    /** 
     * post请求 
     *  
     * @param url 
     *            发送请求的URL 
     * @param params 
     *            请求参数 
     * @return 服务器响应字符串 
     * @throws Exception 
     */ 
    public static String doPost(String url, Map<String, String> rawParams) 
            throws Exception { 
        // 创建HttpPost对象。 
        HttpPost post = new HttpPost(url); 
        // 如果传递参数个数比较多的话可以对传递的参数进行封装 
        List<NameValuePair> params = new ArrayList<NameValuePair>(); 
        for (String key : rawParams.keySet()) { 
            // 封装请求参数 
            params.add(new BasicNameValuePair(key, rawParams.get(key))); 
        } 
        // 设置请求参数 
        post.setEntity(new UrlEncodedFormEntity(params, "utf-8")); 
        // 发送POST请求 
        HttpResponse httpResponse = httpClient.execute(post); 
        // 如果服务器成功地返回响应 
        if (httpResponse.getStatusLine().getStatusCode() == 200) { 
            // 获取服务器响应字符串 
            HttpEntity entity = httpResponse.getEntity(); 
            InputStream content = entity.getContent(); 
            return convertStreamToString(content); 
        } 
        return null; 
    } 
   
    /** 
     * 获取服务器的响应,转换为字符串 
     */ 
    private static String convertStreamToString(InputStream is) { 
        BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
        StringBuilder sb = new StringBuilder(); 
        String line = null; 
        try { 
            while ((line = reader.readLine()) != null) { 
                sb.append(line); 
            } 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } finally { 
            try { 
                is.close(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 
        return sb.toString(); 
    } 
} 
  

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10664.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论