池某人吧 关注:6贴子:88
  • 1回复贴,共1

httpClient简单应用

只看楼主收藏回复

package test;
import java.io.IOException;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
public class GetSample{
  public static void main(String[] args) {
  //构造HttpClient的实例
  HttpClient httpClient = new HttpClient();
  //创建GET方法的实例
  GetMethod getMethod = new GetMethod("http://localhost:8888/peoplecrud/toLogin.htm");
  //使用系统提供的默认的恢复策略
  getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
    new DefaultHttpMethodRetryHandler());
  try {
   //执行getMethod
   int statusCode = httpClient.executeMethod(getMethod);
   if (statusCode != HttpStatus.SC_OK) {
    System.err.println("Method failed: "
      + getMethod.getStatusLine());
   }
   //读取内容 
   byte[] responseBody = getMethod.getResponseBody();
   //处理内容
   System.out.println(new String(responseBody));
  } catch (HttpException e) {
   //发生致命的异常,可能是协议不对或者返回的内容有问题
   System.out.println("Please check your provided http address!");
   e.printStackTrace();
  } catch (IOException e) {
   //发生网络异常
   e.printStackTrace();
  } finally {
   //释放连接
   getMethod.releaseConnection();
  }
 }
}



1楼2008-10-17 10:26回复
    package test;

    import java.io.IOException;

    import org.apache.commons.httpclient.Header;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.NameValuePair;
    import org.apache.commons.httpclient.methods.PostMethod;

    public class GetSample2 {

    /**
     * @param args
     */
    public static void main(String[] args) {
    // 构造HttpClient的实例
     HttpClient httpClient = new HttpClient();
    String url = "http://localhost:8888/peoplecrud/toLogin.htm";
    PostMethod postMethod = new PostMethod(url);
    //  填入各个表单域的值
    NameValuePair[] data = { new NameValuePair("id", "youUserName"),
    new NameValuePair("passwd", "yourPwd") };
    //  将表单的值放入postMethod中
    postMethod.setRequestBody(data);
    //  执行postMethod
    int statusCode;
    try {
    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.");
     }
     return;
    }
    // 读取内容 
     byte[] responseBody = postMethod.getResponseBody();
     //处理内容
     System.out.println(new String(responseBody));
    } catch (HttpException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }


    }

    }


    2楼2008-10-17 10:26
    回复