Java利用HttpClient模拟POST表单操作应用及注意事项

HttpClient使用post方法提交数据 源代码:


package post;

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 PostHttp {

 /**

  * @param args

  */

 public static void main(String[] args) {

  // TODO Auto-generated method stub

  HttpClient httpClient = new HttpClient();

  String url = "http://193.167.13.21/setup.cgi";

  PostMethod postMethod = new PostMethod(url);

//   填入各个表单域的值

  NameValuePair[] data = {

    new NameValuePair("ID", "11"),

    new NameValuePair("mtg", "0"),

    new NameValuePair("haveCookie", "0"),

    new NameValuePair("backID", "30"),

    new NameValuePair("psw", "password")

  };

//   将表单的值放入postMethod中

  postMethod.setRequestBody(data);

//   执行postMethod

  int statusCode = 0;

  try {

   statusCode = httpClient.executeMethod(postMethod);

  } catch (HttpException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  } catch (IOException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  }

//   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;

  }

  else

  {

         System.out.println(postMethod.getStatusLine());

         String str = "";

         try {

               str = postMethod.getResponseBodyAsString();

         } catch (IOException e) {

               // TODO Auto-generated catch block

               e.printStackTrace();

         }        

         System.out.println(str);

  }

  postMethod.releaseConnection();

        return ;

 }

}


//这是一个用户认证过程的登陆信息

其中需要的jar包:

1、commons-httpclient-3.1-rc1.zip http://jakarta.apache.org/commons/httpclient/downloads.html

2、commons-codec-1.3.jar    http://jakarta.apache.org/site/downloads/downloads_commons-codec.cgi

3、commons-logging-api.jar   在tomcat5.5中的Tomcat 5.5/bin目录下或者    http://jakarta.apache.org/site/downloads/downloads_commons-logging.cgi

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。