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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值