HttpRequest的内容都是什么

自己运行一下,记忆回深一点

package com.example.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/api")
public class RequestInfoController {

    @GetMapping("/request-info")
    public Map<String, Object> getRequestInfo(HttpServletRequest request) throws IOException {
        Map<String, Object> requestInfo = new HashMap<>();

        // 请求行信息
        requestInfo.put("method", request.getMethod());
        requestInfo.put("requestURI", request.getRequestURI());
        requestInfo.put("queryString", request.getQueryString());

        // 请求头信息
        Map<String, String> headers = new HashMap<>();
        Enumeration<String> headerNames = request.getHeaderNames();
        while (headerNames.hasMoreElements()) {
            String headerName = headerNames.nextElement();
            headers.put(headerName, request.getHeader(headerName));
        }
        requestInfo.put("headers", headers);

        // 请求参数
        Map<String, String[]> parameters = request.getParameterMap();
        requestInfo.put("parameters", parameters);

        // 请求体(只适用于 POST 请求等有请求体的情况)
        StringBuilder requestBody = new StringBuilder();
        BufferedReader reader = request.getReader();
        String line;
        while ((line = reader.readLine()) != null) {
            requestBody.append(line);
        }
        requestInfo.put("requestBody", requestBody.toString());

        // 路径信息
        requestInfo.put("contextPath", request.getContextPath());
        requestInfo.put("servletPath", request.getServletPath());
        requestInfo.put("pathInfo", request.getPathInfo());

        // 远程信息
        requestInfo.put("remoteAddr", request.getRemoteAddr());
        requestInfo.put("remoteHost", request.getRemoteHost());
        requestInfo.put("remotePort", request.getRemotePort());

        // 其他信息
        requestInfo.put("scheme", request.getScheme());
        requestInfo.put("serverName", request.getServerName());
        requestInfo.put("serverPort", request.getServerPort());

        return requestInfo;
    }
}

路径如下:

http://localhost:8080/api/request-info
 

结果:

{
    "method": "GET",
    "requestURI": "/api/request-info",
    "queryString": null,
    "headers": {
        "host": "localhost:8080",
        "connection": "keep-alive",
        "cache-control": "max-age=0",
        "sec-ch-ua": "\"Chromium\";v=\"90\", \" Not A;Brand\";v=\"99\", \"Google Chrome\";v=\"90\"",
        "sec-ch-ua-mobile": "?0",
        "upgrade-insecure-requests": "1",
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36",
        "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
        "sec-fetch-site": "none",
        "sec-fetch-mode": "navigate",
        "sec-fetch-user": "?1",
        "sec-fetch-dest": "document",
        "accept-encoding": "gzip, deflate, br",
        "accept-language": "en-US,en;q=0.9"
    },
    "parameters": {},
    "requestBody": "",
    "contextPath": "",
    "servletPath": "/api/request-info",
    "pathInfo": null,
    "remoteAddr": "127.0.0.1",
    "remoteHost": "127.0.0.1",
    "remotePort": 58660,
    "scheme": "http",
    "serverName": "localhost",
    "serverPort": 8080
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值