httpclient例子1,个人测试过,摒弃了网上不正确的

/**
 * @author NECSTHZ.zhaojianming 
 * @Modification{#} TE12.java Create on 2009/02/17 14:00:27   
 * @version 1.0
 * @JDK version used: jdk1.6
 * @Copyright (c) 2008 by NECSTHZ   
 */
package http.test;

import java.io.IOException;

import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;

/**
 * @Description:TE12.java
 * @author NECSTHZ.zhaojianming
 */

public class TE12 {

 /**
  * @method main
  * @param args
  * @author zhaojianming
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub

  HttpClient client = new HttpClient();
  client.getState().setCookiePolicy(CookiePolicy.COMPATIBILITY);
//  client.getState().setCookiePolicy(1213321);
  // 1
  GetMethod authget = new GetMethod(
    "http://172.28.140.113:8080/jsp-examples/security/protected/index.jsp");
  try {
   int i = client.executeMethod(authget);
  } catch (HttpException httpe) {
   httpe.printStackTrace();
  } catch (IOException ioe) {
   ioe.printStackTrace();
  }
  // 2
  NameValuePair[] data = new NameValuePair[2];
  data[0] = new NameValuePair("j_username", "tomcat");
  data[1] = new NameValuePair("j_password", "tomcat");
  PostMethod authpost = new PostMethod(
    "http://172.28.140.113:8080/jsp-examples/security/protected/j_security_check");
  authpost.setRequestBody(data);
  
  // 3
  Header hCookie = authget.getResponseHeader("set-Cookie");
  String cookie = hCookie.getValue();
  Header hHost = authget.getRequestHeader("Host");
  Header hUserAgent = authget.getRequestHeader("User-Agent");
  if (hCookie == null || hHost == null || hUserAgent == null) {
   return;
  }
  authpost.setRequestHeader("Cookie",cookie);
  authpost.setRequestHeader(hHost);
  authpost.setRequestHeader(hUserAgent);
  authget.releaseConnection();
  try {
   client.executeMethod(authpost);
   // 4
   Header header = authpost.getResponseHeader("location");
//   System.out.print(header.toString());
   if (header != null) {
    String newuri = header.getValue();
    GetMethod redirect = new GetMethod(newuri);
    client.executeMethod(redirect);
    System.out.print(redirect.getResponseBodyAsString());
    // process the content from the response
    redirect.releaseConnection();
   }
  } catch (HttpException httpe) {
   httpe.printStackTrace();
   return;
  } catch (IOException ioe) {
   ioe.printStackTrace();
   return;
  }
  authpost.releaseConnection();
 }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值