JAVA实现httpClient实例
package net.zhutou.http;import java.util.HashMap; import java.util.Iterator; import java.util.Map;import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; /** * @author 猪头 */ public class MyClient { /** *的到Http请求结果 * @param url请求地址 * @param parms请求参数 * @return */ public byte[] getBody(String url,Map parms){ byte[] body=null; //构造HttpClient的实例 HttpClient httpClient = new HttpClient(); //创建GET方法的实例 PostMethod postMethod = new PostMethod(url); //填入各个表单域的值 NameValuePair[] data = new NameValuePair[parms.keySet().size()]; Iterator it = parms.entrySet().iterator(); int i=0; while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); Object key = entry.getKey(); Object value = entry.getValue(); data[i]=new NameValuePair(key.toString(),value.toString()); i++; }//将表单的值放入postMethod中 postMethod.setRequestBody(data); try { //执行postMethod int statusCode = httpClient.executeMethod(postMethod); // HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发 // 301或者302 if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) { //从头中取出转向的地址 Header locationHeader = postMethod .getResponseHeader(“location”); String location = null; if (locationHeader != null) { location = locationHeader.getValue(); System.out .println(“The page was redirected to:” + location); } else { System.err.println(“Location field value is null.”); } } body = postMethod.getResponseBody(); } catch (Exception e) { e.printStackTrace(); } return body; } public static void main(String[] args) { String url=“http://www.huawei.com”; Map parms=new HashMap(); MyClient client=new MyClient(); String result=new String(client.getBody(url, parms)); System.out.println(result); } }