java获取http请求的Header和Body

在http请求中,有Header和Body之分,读取header使用request.getHeader("...");

读取Body使用request.getReader(),但getReader获取的是BufferedReader,需要把它转换成字符串,下面是转换的方法。

public class TestController {

    @RequestMapping("/a")
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response, BufferedReader br)
            throws ServletException, IOException {//Header部分
        System.out.print(request.getHeaderNames());
        Enumeration<?> enum1 = request.getHeaderNames();
        while (enum1.hasMoreElements()) {
            String key = (String) enum1.nextElement();
            String value = request.getHeader(key);
            System.out.println(key + "\t" + value);
        }
//body部分
        String inputLine;
        String str = "";
        try {
            while ((inputLine = br.readLine()) != null) {
                str += inputLine;
            }
            br.close();
        } catch (IOException e) {
            System.out.println("IOException: " + e);
        }
        System.out.println("str:" + str);
    }
时间: 2024-12-11 21:19:32

java获取http请求的Header和Body的相关文章

java获取客户端请求ip地址

public static String getIpAddr(HttpServletRequest request) { if (null == request) { return null; } String proxs[] = { "X-Forwarded-For", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_CLIENT_IP", "HTTP_X_FORWAR

VS2008 C++ 利用WinHttp API获取Http请求/响应头部Header

http://www.cnblogs.com/LCCRNblog/p/3833472.html 这一篇博客中,实现了获取http请求/响应后的html源码,现在需要获取http请求/响应的头部Header..通过对WinHttp Api的查看,现给出实现代码.. 1 // WinHttpTest.cpp : 定义控制台应用程序的入口点. 2 // 3 //#include <stdafx.h> 4 #include <vector> 5 #include <winsock2.

Java获取请求客户端的真实IP地址

Java获取请求客户端的真实IP地址 Java,获取客户端的IP地址的方法: request.getRemoteAddr() 这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了; 如果使用了反向代理软件,将http://192.168.1.110:2046 的URL反向代理为 http://www.javapeixun.com.cn的URL时, 用 request.getRemoteAddr() 方法获取的IP地址是:127.0

java后台发送请求并获取返回值(续)

在java后端发送请求给另一个平台,从而给前端实现 "透传"的过程中,出现:数据请求到了并传到了前端,但是控制台打印时中文显示Unicode码而前端界面中中文显示不出来!!!开始怀疑是编码格式或透传过程中处理的问题,将编码格式进行了设置并查资料了解了一下透传过程中代码的处理方法,虽然最后发现是前后端定义的json串的属性名称不一致导致(后端传输数据中属性名label写成了lable...),但在此还是记录一下"透传"处理过程中处理数据流的三种方式. 主要是介绍经常用

用Java发起HTTP请求与获取状态码(含状态码列表)

转自:https://blog.csdn.net/xyw591238/article/details/51072697 在使用Java请求Web程序比如访问WebService接口时,通常需要先判断访问URL的有效性,这里就Java发送HTTP请求的方式做简单记录,按照前辈们的说法,Java发HTTP请求,最常见的无非是两种,一种是用java.net.URLConnection,另一种则是大名鼎鼎的HttpClient.使用java.net.URLConnection比较麻烦,而HttpClie

【Java】获取此次请求URL,获取服务器根路径

一. 获取此次请求的URL **String requestUrl = request.getScheme() //当前链接使用的协议 +"://" + request.getServerName()//服务器地址 + ":" + request.getServerPort() //端口号 + request.getContextPath() //应用名称,如果应用名称为 + request.getServletPath() //请求的相对url + "?

Java根据HttpServletRequest请求获取服务器的IP地址

以下总结了两种根据HttpServletRequest请求获取发出请求浏览器客户端所在服务器的IP地址方法: 代码: import javax.servlet.http.HttpServletRequest; /** * 根据HttpServletRequest请求获取发出请求浏览器客户端所在服务器的IP地址 * @author [] * */ public class IPUtil { /* * 第一种方法 */ public String getIpAddr(HttpServletReque

关于curl java 模拟http请求

近期笔者项目需求java模拟http请求,获取dns解析 tcp连接等详细耗时信息. java api中提供的urlConnection 及apache提供的httpClient都不能胜任该需求,二次开发太费时间.于是google之. 最后 得出两种解决办法: 一是使用HTTP4J. 该开源项目使用socket方式,模拟请求,记录时间戳,基本满足需求.对于header自定义等细节,可在此基础上比较方便的二次开发.只是,其中有一些bug需要修复, 如https链接时获取不到ssl时间等.使用该项目

java 获取网络地址图片

收藏一个获取网络图片的方法. 1 //获取网络图片 2 public void ImageRequest(String ImageName,String GifUrl) throws Exception { 3 //new一个URL对象 4 URL url = new URL(GifUrl); 5 //打开链接 6 HttpURLConnection conn = (HttpURLConnection)url.openConnection(); 7 //设置请求方式为"GET" 8 c