package com.cz.utils;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import java.util.HashMap;import android.util.Log;public class HttpUtil {private static final String GET = "GET";private static final String POST = "POST";private static final int connectTimeout = 6000;private static final int readTimeout = 30000;/** * GET方式发送数据 */public static String sendGet(String http, String data, String charset) {return request(http, data, charset, GET);}public static String sendGet(String http, HashMap map, String charset) {return sendGet(http, map, charset, false);}public static String sendGet(String http, HashMap map, String charset, boolean encode) {return sendGet(http, praseMap(map, charset, encode), charset);}/** * POST方式发送数据 */public static String sendPost(String http, String data, String charset) {return request(http, data, charset, POST);}public static String sendPost(String http, HashMap map, String charset) {return sendPost(http, map, charset, false);}public static String sendPost(String http, HashMap map, String charset, boolean encode) {return sendPost(http, praseMap(map, charset, encode), charset);}/** * 解析map */private static String praseMap(HashMap map, String charset, boolean encode) {StringBuffer sb = new StringBuffer();if (map != null && !map.isEmpty()) {try {boolean f = true;String v;for (String k : map.keySet()) {if (k != null && !"".equals(k)) {v = map.get(k).trim();if (!f)sb.append("&");if (encode)v = URLEncoder.encode(v, charset);sb.append(k).append("=").append(v);f = false;}}} catch (Exception e) {e.printStackTrace();}}return sb.toString().trim();}private static String request(String http, String data, String charset, String type) {StringBuffer sb = new StringBuffer();HttpURLConnection conn = null;OutputStreamWriter out = null;BufferedWriter bw = null;InputStreamReader isr = null;BufferedReader br = null;try {if (GET.equals(type) && data != null && !"".equals(data)){http = http + "?" + data;}URL u = new URL(http);conn = (HttpURLConnection) u.openConnection();conn.setRequestMethod(type);conn.setConnectTimeout(connectTimeout);conn.setReadTimeout(readTimeout);if (POST.equals(type))conn.setDoOutput(true);conn.setDoInput(true);conn.connect();// 传送数据if (POST.equals(type)) {if (data != null && !"".equals(data)) {out = new OutputStreamWriter(conn.getOutputStream(), charset);bw = new BufferedWriter(out);bw.write(data);bw.flush();}}// 接收数据if (conn.getResponseCode() == 200) {isr = new InputStreamReader(conn.getInputStream(), charset);br = new BufferedReader(isr);String line;while ((line = br.readLine()) != null){sb.append(line).append(System.getProperty("line.separator"));}}} catch (Exception e) {e.printStackTrace();} finally {try {bw.close();} catch (Exception e) {}try {out.close();} catch (Exception e) {}try {br.close();} catch (Exception e) {}try {isr.close();} catch (Exception e) {}try {conn.disconnect();} catch (Exception e) {}}Log.e("sb:", sb.toString().trim());return sb.toString().trim();}}

 

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. sqlite的使用及其框架
  3. Android练习之SmsManager发短信
  4. Android中SdCard的数据读写
  5. Android第十五天 ContentProvider之ContentResover
  6. Android--fragment从activity中获取数据
  7. Android按返回键退出程序的两种方式
  8. Android(安卓)使用Parcelable接口
  9. Android(安卓)自动向手机添加联系人(测试数据用)

随机推荐

  1. ????????????,?????Android_app
  2. Android(安卓)关于NestedScrollView与Rec
  3. [Android]基于Android的Java学习路线图
  4. Android背后的设计思想——功能共享机制
  5. Android(安卓)sqlite数据库加密
  6. Android初识之简易计算器
  7. ListView(二)
  8. Android(安卓)View 仿iOS SwitchButton
  9. Android简单语音控制应用的实现
  10. Android 蓝牙调色灯/zigbee调色灯学习开