服务器之家

服务器之家 > 正文

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

时间:2020-04-18 12:09     来源/作者:88250

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

标签:

相关文章

热门资讯

沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
返回顶部

907
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40