java 获取request请求要素
时间: 2023-08-10 11:02:45 浏览: 104
Java中获取HTTP请求的要素可以通过HttpServletRequest对象来实现。常用的HTTP请求要素包括:
1. 请求方法(GET、POST等):可以通过HttpServletRequest对象的getMethod()方法获取。
2. 请求URL:可以通过HttpServletRequest对象的getRequestURL()方法获取,或者通过getRequestURI()方法获取相对路径。
3. 请求参数:可以通过HttpServletRequest对象的getParameter()方法获取,也可以通过getParameterMap()方法获取所有参数。
4. 请求头:可以通过HttpServletRequest对象的getHeader()方法获取指定的请求头,也可以通过getHeaderNames()方法获取所有请求头的名称。
5. 请求体:通常用于POST请求中传递的数据,可以通过HttpServletRequest对象的getInputStream()方法获取输入流来读取请求体内容。
示例代码如下:
```java
import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
public class RequestUtils {
/**
* 获取HTTP请求方法
*/
public static String getMethod(HttpServletRequest request) {
return request.getMethod();
}
/**
* 获取HTTP请求URL
*/
public static String getUrl(HttpServletRequest request) {
StringBuffer url = request.getRequestURL();
String queryString = request.getQueryString();
if (queryString != null) {
url.append("?").append(queryString);
}
return url.toString();
}
/**
* 获取HTTP请求参数
*/
public static String getParameter(HttpServletRequest request, String name) {
return request.getParameter(name);
}
/**
* 获取HTTP请求头
*/
public static String getHeader(HttpServletRequest request, String name) {
return request.getHeader(name);
}
/**
* 获取所有HTTP请求头名称
*/
public static Enumeration<String> getHeaderNames(HttpServletRequest request) {
return request.getHeaderNames();
}
/**
* 获取HTTP请求体
*/
public static String getRequestBody(HttpServletRequest request) throws IOException {
InputStream inputStream = request.getInputStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) > -1) {
outputStream.write(buffer, 0, len);
}
outputStream.flush();
return outputStream.toString();
}
}
```
阅读全文