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

网友投稿 286 2023-07-19


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

Hthttp://tpClient使用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;

publiJTSVvoic 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

 http://  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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java模拟有序链表数据结构的示例
下一篇:java实现FTP文件上传与文件下载
相关文章

 发表评论

暂时没有评论,来抢沙发吧~