简单的HttpClient使用

Httpclient用途很广泛,用来处理各种http请求,这里举个简单的例子

去查询QQ邮件登陆账号检测是的verifycode,一直想怎么能够代码登陆

QQ邮箱,但是QQ的登陆机制做的太TMD牛逼了,验证码一关还没

找到办法过去。

  1 import java.io.IOException;
  2 import java.io.UnsupportedEncodingException;
  3 import java.net.URI;
  4 import java.net.URISyntaxException;
  5 import java.util.ArrayList;
  6 import java.util.List;
  7 
  8 import org.apache.http.HttpEntity;
  9 import org.apache.http.HttpResponse;
 10 import org.apache.http.NameValuePair;
 11 import org.apache.http.ParseException;
 12 import org.apache.http.client.ClientProtocolException;
 13 import org.apache.http.client.HttpClient;
 14 import org.apache.http.client.entity.UrlEncodedFormEntity;
 15 import org.apache.http.client.methods.HttpGet;
 16 import org.apache.http.client.methods.HttpPost;
 17 import org.apache.http.impl.client.DefaultHttpClient;
 18 import org.apache.http.message.BasicNameValuePair;
 19 import org.apache.http.util.EntityUtils;
 20 
 21 public class HttpProcess{
 22 
 23     private static HttpClient httpclient = new DefaultHttpClient();
 24     public static void main(String[] args) {
 25         
 26         List<NameValuePair> params = new ArrayList<NameValuePair>();
 27         params.add(new BasicNameValuePair("uin", "1633931117@qq.com"));
 28         params.add(new BasicNameValuePair("appid", "522005705"));
 29         params.add(new BasicNameValuePair("ptlang", "2052"));
 30         params.add(new BasicNameValuePair("js_type", "2"));
 31         params.add(new BasicNameValuePair("js_ver", "10009"));
 32         String r =  String.valueOf(Math.random());
 33         params.add(new BasicNameValuePair("r", r));
 34         String url = "https://ssl.ptlogin2.qq.com/check";
 35 
 36         String body = post(url, params);
 37         System.out.println(body);
 38     }
 39 
 40     /**
 41      * Get请求
 42      */
 43     @SuppressWarnings("deprecation")
 44     public static String get(String url, List<NameValuePair> params) {
 45         String body = null;
 46         try {
 47             // Get请求
 48             HttpGet httpget = new HttpGet(url);
 49             // 设置参数
 50             String str = EntityUtils.toString(new UrlEncodedFormEntity(params));
 51             httpget.setURI(new URI(httpget.getURI().toString() + "?" + str));
 52             // 发送请求
 53             HttpResponse httpresponse = httpclient.execute(httpget);
 54             // 获取返回数据
 55             HttpEntity entity = httpresponse.getEntity();
 56             body = EntityUtils.toString(entity);
 57             if (entity != null) {
 58                 entity.consumeContent();
 59             }
 60         } catch (ParseException e) {
 61             e.printStackTrace();
 62         } catch (UnsupportedEncodingException e) {
 63             e.printStackTrace();
 64         } catch (IOException e) {
 65             e.printStackTrace();
 66         } catch (URISyntaxException e) {
 67             e.printStackTrace();
 68         }
 69         return body;
 70     }
 71 
 72     /**
 73      *  Post请求
 74      */
 75     @SuppressWarnings("deprecation")
 76     public static String post(String url, List<NameValuePair> params) {
 77         String body = null;
 78         try {
 79             // Post请求
 80             HttpPost httppost = new HttpPost(url);
 81             // 设置参数
 82             httppost.setEntity(new UrlEncodedFormEntity(params));
 83             // 发送请求
 84             HttpResponse httpresponse = httpclient.execute(httppost);
 85             // 获取返回数据
 86             HttpEntity entity = httpresponse.getEntity();
 87             body = EntityUtils.toString(entity);
 88             if (entity != null) {
 89                 entity.consumeContent();
 90             }
 91         } catch (UnsupportedEncodingException e) {
 92             e.printStackTrace();
 93         } catch (ClientProtocolException e) {
 94             e.printStackTrace();
 95         } catch (ParseException e) {
 96             e.printStackTrace();
 97         } catch (IOException e) {
 98             e.printStackTrace();
 99         }
100         return body;
101     }
102 
103 }
View Code

 

posted @ 2013-12-10 13:57  cstar(小乐)  阅读(543)  评论(0编辑  收藏  举报