httpclient4.0的简单使用(1)马上去偷网页吧~

aimsam aimsam 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近需要用到httpclient做一些模拟登陆什么的..本文不涉及到验证码下载的处理..(因为我没用到…)

首先是下载地址

http://disk.idealweb.cn/disk/f/213_20120830185357_2173_httpcomponents-client-4.2.1-bin.tar.gz
ps:推荐一下上面自己做的网盘,不需要任何注册直接上传,可以外链..哈哈~disk.idealweb.cn

引入改引入的包.

主要的两种获取页面的方式.get post直接贴代码.
关键的都有注释..
真的很简单了,再配合上httpwatch和正则理论上大多数页面的数据都可以轻松抓取了
刷个链接..博客的地址...
http://www.wuliaoji.com/httpclient4-0%E7%9A%84%E7%AE%80%E5%8D%95%E4%BD%BF%E7%94%A8.html



package com.bms.core;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
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.util.EntityUtils;

import com.bms.util.CommonUtil;

public class Test2 {

/**
* @param args
* @throws IOException
* @throws ClientProtocolException
*/
public static void main(String[] args) throws ClientProtocolException, IOException {
DefaultHttpClient httpclient = new DefaultHttpClient();

HttpGet httpGet = new HttpGet("http://www.baidu.com");
String body = "";
HttpResponse response;
HttpEntity entity;
response = httpclient.execute(httpGet);
entity = response.getEntity();
body = EntityUtils.toString(entity);//这个就是页面源码了
httpGet.abort();//中断请求,接下来可以开始另一段请求
System.out.println(body);
//httpGet.releaseConnection();//释放请求.如果释放了相当于要清空session
//以下是post方法
HttpPost httpPost = new HttpPost("http://www.baidu.com");//一定要改成可以提交的地址,这里用百度代替
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("name", "1"));//名值对
nvps.add(new BasicNameValuePair("account", "xxxx"));
httpPost.setEntity(new UrlEncodedFormEntity(nvps, Consts.UTF_8));
response = httpclient.execute(httpPost);
entity = response.getEntity();
body = EntityUtils.toString(entity);
System.out.println("Login form get: " + response.getStatusLine());//这个可以打印状态
httpPost.abort();
System.out.println(body);
httpPost.releaseConnection();
}

}



可能会有..httpclient4.0的简单使用(2)...
...全文
评论 4
收藏 已收藏
分享
返回顶部
aimsam
Web 开发 81,108 成员 341,721 内容