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

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

时间: 2024-12-28 13:25:25

Java利用HttpClient模拟POST表单操作应用及注意事项_java的相关文章

httpclient-java 利用 httpClient 模拟登陆网站时,网站重定向,我该怎么进入后继的网页啊!

问题描述 java 利用 httpClient 模拟登陆网站时,网站重定向,我该怎么进入后继的网页啊! 我用的是httpclient4.3.6 .我模拟登陆我们学校的网站,获取了cookies,但是我用httpwatch看 有重定向的问题,我不知道怎么进入后面的网页!求解!我贴上代码,求代码详解,谢谢!!!小弟初学java 现需要做这个操作,很是艰难呀!感激不尽! 解决方案 public class Test { public static void main(String[] args) th

JAVA利用HttpClient进行POST请求(HTTPS)实例_java

最近,需要对客户的接口做一个包装,然后供自己公司别的系统调用,客户接口是用HTTP URL实现的,我想用HttpClient包进行请求,同时由于请求的URL是HTTPS的,为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程. 1.写一个SSLClient类,继承至HttpClient package com.pcmall.service.sale.miaomore.impl; import java.security.cert.CertificateExcept

java发送HttpClient请求及接收请求结果过程的简单实例_java

一. 1.写一个HttpRequestUtils工具类,包括post请求和get请求 package com.brainlong.framework.util.httpclient; import net.sf.json.JSONObject; import org.apache.commons.httpclient.HttpStatus; import org.apache.http.HttpResponse; import org.apache.http.client.methods.Htt

利用httpclient模拟站点的登录发帖回复

HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供支持 HTTP 协议的客户端编程工具包,模拟浏览器的行为.它提供了很多的方法来简化网络的访问,虽然大部分的功能可以使用较底层的 java.net.HttpURLConnection 来实现.例如: 实现了所有 HTTP 的方法( GET,POST 等) 支持 HTTPS 协议 支持代理服务器 自动维护 Cookies 等 我们知道,http 协议是面向无连接的,要维持会话,现在基本上都是采用基于 Coo

java使用httpclient模拟post请求和get请求示例_java

复制代码 代码如下: import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;import org.apache.commons.httpclient.Header;import org

thinkPHP5 ajax提交表单操作实例分析

本文实例讲述了thinkPHP5 ajax提交表单操作.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script> <

jquery 常用表单操作函数集(1/4)

1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法. 2.jquery对象与dom对象的转换 只有jquery对象才能使用jquery定义的方法.注意dom对象和jquery对象是有区别的,调用方法时要注意操作的是dom对象还是 jquery对象. 普通的dom对象一般可以通过$()转换成jquery对象. 如:$(document.g

推荐10个不错jQuery表单操作代码片段

代码片段1: 在表单中禁用"回车键" 大家可能在表单的操作中需要防止用户意外的提交表单,那么下面这段代码肯定非常有帮助:  代码如下 复制代码 $("#form").keypress(function(e) {   if (e.which == 13) {     return false;   } }); 代码片段2: 清除所有的表单数据 可能针对不同的表单形式,你需要调用不同类型的清楚方法,不过使用下面这个现成方法,绝对能让你省不少功夫.  代码如下 复制代码

AngularJS表单操作几个例子(表单提交,表单编辑默认值)

模仿着我要搞了个AngularJS Form,但是问题来了.... 发现初始化时候ng-model 跟 input 标签里的 value 不默契,冲突.. 后来想再AngularJS controller 里预先赋值 $scope.formData = {'name':'张三'}; 可以通过php程序把值赋到这个AngularJS controller里  代码如下 复制代码 <!-- AngularJS controller --> <script>     var formAp