地址:http://hc.apache.org/httpcomponents-core/index.html
去这里下载httpClient 4.0.1 ,解压后找到examples文件夹,里面有很多示例,很简单。
贴一段自己写的discuz论坛发帖机的代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.httpclient.HttpException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
/**
*
* @author xugang
*
*/
public class TestHttpClient {
/**
* @param args
* @throws IOException
* @throws HttpException
*/
public static void main(String[] args) throws Exception {
String bbsUrl = "http://jxsj.bbs.xoyo.com";
String url = bbsUrl + "/logging.php";
DefaultHttpClient hc = new DefaultHttpClient();
HttpPost httpost = new HttpPost(url);
List <NameValuePair> nvps = new ArrayList <NameValuePair>(); //post参数
nvps.add(new BasicNameValuePair("username", "***"));
nvps.add(new BasicNameValuePair("password", "***"));
nvps.add(new BasicNameValuePair("formhash", "***"));
nvps.add(new BasicNameValuePair("questionid", "0"));
nvps.add(new BasicNameValuePair("answer", ""));
nvps.add(new BasicNameValuePair("cookietime", "315360000"));
nvps.add(new BasicNameValuePair("loginmode", "normal"));
nvps.add(new BasicNameValuePair("action", "login"));
nvps.add(new BasicNameValuePair("loginsubmit", "true"));
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); //把参数用utf-8编码
HttpResponse response = hc.execute(httpost);
HttpEntity entity = response.getEntity(); //获得HttpEntity
System.out.println("Login form get: " + response.getStatusLine());
//必须要对entity进行处理,否则用同一个httpClient访问其他地址时,会抛出异常。这里是销毁返回的content
if (entity != null) {
entity.consumeContent();
}
System.out.println("Initial set of cookies:");
List<Cookie> cookies = hc.getCookieStore().getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
String geturl2 = "http://jxsj.bbs.xoyo.com/forumdisplay.php?fid=7079&page=1";
HttpGet get = new HttpGet(geturl2);
HttpResponse response2 = hc.execute(get);
HttpEntity entity2 = response2.getEntity();
//必须要对entity进行处理,否则用同一个httpClient访问其他地址时,会抛出异常。这里是读取返回的content,然后关闭流。
InputStream is2 = entity2.getContent();
BufferedReader br2 = new BufferedReader( new InputStreamReader(is2));
String str2 ="";
while( (str2 = br2.readLine())!= null ){
System.out.println(str2);
}
is2.close();
br2.close();
hc.getConnectionManager().shutdown(); //关闭这个httpclient
}
}
。。