JAVA实现httpClient实例介绍

原创|其它|编辑:郝浩|2009-10-14 10:25:44.000|阅读 2678 次

概述:本文介绍了JAVA实现httpClient实例。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

package net.xfok.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;

  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.xfok.net”;
  Map parms=new HashMap();
  MyClient client=new MyClient();
  String result=new String(client.getBody(url, parms)); System.out.println(result);
  }
  }


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:IT专家网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP