java类模拟客户端调用servlet (httpClient)

简介: java类模拟客户端调用servlet (httpClient)

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.HttpException;

import org.apache.commons.httpclient.HttpStatus;

import org.apache.commons.httpclient.methods.PostMethod;

import org.apache.commons.httpclient.params.HttpMethodParams;



......



// 构造HttpClient的实例

 HttpClient httpClient = new HttpClient();

 // 创建GET方法的实例

 PostMethod postMethod = new PostMethod(url + "servlet/getUrlAddress?");

 // 使用系统提供的默认的恢复策略

 postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,

   new DefaultHttpMethodRetryHandler());

 

 postMethod.addParameter("username",URLEncoder.encode(username));

 postMethod.addParameter("password",URLEncoder.encode(password));

 try {

  // 执行postMethod

  int statusCode = httpClient.executeMethod(postMethod);

  if (statusCode != HttpStatus.SC_OK) {

   System.err.println("Method failed: " + postMethod.getStatusLine());

  }

  // 读取内容

  String responseBody = new String(postMethod.getResponseBody());

  // 处理内容

  //System.out.println("servlet返回的内容 : " + responseBody);

 } catch (HttpException e) {

  // 发生致命的异常,可能是协议不对或者返回的内容有问题

  System.out.println("Please check your provided http address!");

  e.printStackTrace();

 } catch (IOException e) {

  // 发生网络异常

  e.printStackTrace();

 } finally {

  // 释放连接

  postMethod.releaseConnection();

 }



....


相关文章
|
7天前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
20 8
|
5天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
33 3
|
1天前
|
人工智能 安全 Java
Java8 - LocalDateTime时间日期类使用详解
Java8 - LocalDateTime时间日期类使用详解
|
2天前
|
安全 Java 程序员
|
3天前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
|
3天前
|
Java
Java Class类
Java Class类
8 0
|
10天前
|
Java 编译器
Java Character 类
4月更文挑战第13天
|
10天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
14天前
|
Java Shell
Java 21颠覆传统:未命名类与实例Main方法的编码变革
Java 21颠覆传统:未命名类与实例Main方法的编码变革
13 0
|
14天前
|
Java
Java 15 神秘登场:隐藏类解析未知领域
Java 15 神秘登场:隐藏类解析未知领域
18 0