六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 127|回复: 0

JAVA实现httpClient实例

[复制链接]

升级  9.33%

18

主题

18

主题

18

主题

秀才

Rank: 2

积分
64
 楼主| 发表于 2013-2-7 20:57:44 | 显示全部楼层 |阅读模式
/*
* Created on 2009-10-12
* Copyright 2009 by www.xfok.net. All Rights Reserved
*
*/

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;

/**
* @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();
  // 创建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);
}
}
转载请注明出处:http://www.xfok.net/2009/10/124488.html
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表