JAVA实现httpClient实例

/* 
 * Created on 2009-10-12 
 * Copyright 2009 by
www.xfok.net. All Rights Reserved 
 * 
 */
package test;

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 YangHua 
 * 转载请注明出处:
http://www.xfok.net/2009/10/124488.html 
 */
public class MyClient {
 /** 
  *的到Http请求结果 
  * @param url请求地址 
  * @param parms请求参数 
  * @return 
  */
 public byte[] getBody(String url, Map parms) {
  byte[] body = null;
  //构造HttpClient的实例  
  HttpClient httpClient = new HttpClient();
  //创建post方法的实例  
  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.xfok.net
";
  Map parms = new HashMap();
  MyClient client = new MyClient();
  String result = new String(client.getBody(url, parms));
  System.out.println("-----------"+result);
 }
}

相关讨论:

http://www.iteye.com/topic/638206?page=2

官方:http://hc.apache.org/downloads.cgi

猜你喜欢

转载自newleague.iteye.com/blog/707119
今日推荐