package activitylife.meng.com.activitylife;import java.io.ByteArrayOutputStream;import java.io.DataOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.protocol.HTTP;import org.apache.http.util.EntityUtils;import android.util.Log;/** * Created by meng on 2016/10/6. * httpclient-4.5.2 httpcore-4.4.4 */public class HttpUtils{   public static final String TAG_GET = "Get方式";   public static final String TAG_POST = "Post方式";   public static final String TAG_HTTPGET = "HttpGet方式";   public static final String TAG_HTTPPOST = "HttpPost方式";   public static final int HTTP_200 = 200;   // Get方式请求   public static void requestByGet() throws Exception {      String path = "https://reg.163.com/logins.jsp?id=helloworld&pwd=android";      // 新建一个URL对象      URL url = new URL(path);      // 打开一个HttpURLConnection连接      HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();      // 设置连接超时时间      urlConn.setConnectTimeout(5 * 1000);      // 开始连接      urlConn.connect();      // 判断请求是否成功      if (urlConn.getResponseCode() == HTTP_200) {         // 获取返回的数据         byte[] data = readStream(urlConn.getInputStream());         Log.i(TAG_GET, "Get方式请求成功,返回数据如下:");         Log.i(TAG_GET, new String(data, "UTF-8"));      } else {         Log.i(TAG_GET, "Get方式请求失败");      }      // 关闭连接      urlConn.disconnect();   }   // Post方式请求   public static void requestByPost() throws Throwable {      String path = "https://reg.163.com/logins.jsp";      // 请求的参数转换为byte数组      String params = "id=" + URLEncoder.encode("helloworld", "UTF-8")            + "&pwd=" + URLEncoder.encode("android", "UTF-8");      byte[] postData = params.getBytes();      // 新建一个URL对象      URL url = new URL(path);      // 打开一个HttpURLConnection连接      HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();      // 设置连接超时时间      urlConn.setConnectTimeout(5 * 1000);      // Post请求必须设置允许输出      urlConn.setDoOutput(true);      // Post请求不能使用缓存      urlConn.setUseCaches(false);      // 设置为Post请求      urlConn.setRequestMethod("POST");      urlConn.setInstanceFollowRedirects(true);      // 配置请求Content-Type      urlConn.setRequestProperty("Content-Type",            "application/x-www-form-urlencode");      // 开始连接      urlConn.connect();      // 发送请求参数      DataOutputStream dos = new DataOutputStream(urlConn.getOutputStream());      dos.write(postData);      dos.flush();      dos.close();      // 判断请求是否成功      if (urlConn.getResponseCode() == HTTP_200) {         // 获取返回的数据         byte[] data = readStream(urlConn.getInputStream());         Log.i(TAG_POST, "Post请求方式成功,返回数据如下:");         Log.i(TAG_POST, new String(data, "UTF-8"));      } else {         Log.i(TAG_POST, "Post方式请求失败");      }   }   // HttpGet方式请求   public static void requestByHttpGet() throws Exception {      String path = "https://reg.163.com/logins.jsp?id=helloworld&pwd=android";      // 新建HttpGet对象      HttpGet httpGet = new HttpGet(path);      // 获取HttpClient对象      HttpClient httpClient = new DefaultHttpClient();      // 获取HttpResponse实例      HttpResponse httpResp = httpClient.execute(httpGet);      // 判断是够请求成功      if (httpResp.getStatusLine().getStatusCode() == HTTP_200) {         // 获取返回的数据         String result = EntityUtils.toString(httpResp.getEntity(), "UTF-8");         Log.i(TAG_HTTPGET, "HttpGet方式请求成功,返回数据如下:");         Log.i(TAG_HTTPGET, result);      } else {         Log.i(TAG_HTTPGET, "HttpGet方式请求失败");      }   }   // HttpPost方式请求   public static void requestByHttpPost() throws Exception {      String path = "https://reg.163.com/logins.jsp";      // 新建HttpPost对象      HttpPost httpPost = new HttpPost(path);      // Post参数      List params = new ArrayList();      params.add(new BasicNameValuePair("id", "helloworld"));      params.add(new BasicNameValuePair("pwd", "android"));      // 设置字符集      HttpEntity entity = new UrlEncodedFormEntity(params, HTTP.UTF_8);      // 设置参数实体      httpPost.setEntity(entity);      // 获取HttpClient对象      HttpClient httpClient = new DefaultHttpClient();      // 获取HttpResponse实例      HttpResponse httpResp = httpClient.execute(httpPost);      // 判断是够请求成功      if (httpResp.getStatusLine().getStatusCode() == HTTP_200) {         // 获取返回的数据         String result = EntityUtils.toString(httpResp.getEntity(), "UTF-8");         Log.i(TAG_HTTPGET, "HttpPost方式请求成功,返回数据如下:");         Log.i(TAG_HTTPGET, result);      } else {         Log.i(TAG_HTTPGET, "HttpPost方式请求失败");      }   }   // 获取连接返回的数据   private static byte[] readStream(InputStream inputStream) throws Exception {      byte[] buffer = new byte[1024];      int len = -1;      ByteArrayOutputStream baos = new ByteArrayOutputStream();      while ((len = inputStream.read(buffer)) != -1) {         baos.write(buffer, 0, len);      }      byte[] data = baos.toByteArray();      inputStream.close();      baos.close();      return data;   }}

更多相关文章

  1. 简单封装HttpUrlConnection异步请求
  2. Android实现订单倒计时功能
  3. Android(安卓)获取手机应用信息
  4. unity android获取电量和wifi信号强度
  5. Android(安卓)获取验证码倒计时
  6. Android中的数据存储方式
  7. Android中获取全局Context
  8. android路径获取
  9. 简单实现android短信发送器

随机推荐

  1. Android开发笔记(一百二十二)循环器视图Rec
  2. android studio 使用github完整保存
  3. Android学习笔记二十二之ViewFlipper&&Ad
  4. android LocalBroadcastManager的使用
  5. 2016,这些 Android 技术会很火
  6. Android自定义TabLayout后ViewPager与Tab
  7. Android Dialog style属性
  8. Android选项卡的几种实现方法
  9. ScrollView包含其他可scroll的view时保持
  10. Android 有输入框的页面,一打开就会弹出输