相关疑难解决方法(0)

如何从java中的HttpServletRequest检索原始发布数据

我正在尝试用Java获取发布数据.看起来它应该是最简单的事情之一吗?我的意思是,HttpServletRequest.getParameter必须做对吗?那么如何获得原始发布数据呢?

我发现HttpServletRequest获取JSON POST数据并使用Kdeveloper的代码从请求中提取发布数据.它有效,但有一个问题:我只能获得一次这样的帖子数据.

下面是我用Kdeveloper代码制作的方法:

public static String getPostData(HttpServletRequest req) {
    StringBuilder sb = new StringBuilder();
    try {
        BufferedReader reader = req.getReader();
        reader.mark(10000);

        String line;
        do {
            line = reader.readLine();
            sb.append(line).append("\n");
        } while (line != null);
        reader.reset();
        // do NOT close the reader here, or you won't be able to get the post data twice
    } catch(IOException e) {
        logger.warn("getPostData couldn't.. get the post data", e);  // This has happened if the request's reader is closed    
    } …
Run Code Online (Sandbox Code Playgroud)

java post servlets http

55
推荐指数
2
解决办法
14万
查看次数

如何在HttpServletRequest中设置参数?

我正在使用javax.servlet.http.HttpServletRequest来实现Web应用程序.

使用getParameter方法获取请求的参数没有问题.但是我不知道如何在我的请求中设置参数.

java web-applications

28
推荐指数
4
解决办法
12万
查看次数

修改HttpServletRequest主体

我正在研究遗留代码,需要制作补丁.

问题:古老的应用程序发送错误的HTTP POST请求.其中一个参数不是URL编码的.我知道这个参数总是最后一个,我知道它的名字.我现在正试图在服务器端修复它,它在tomcat中运行.

此参数无法通过HttpServletRequest的标准getParameter方法访问,因为它格式不正确.方法只返回n​​ull.但是当我通过ServletInputStream手动读取整个请求时,所有其他参数都会消失.看起来底层类无法解析ServletInputStream的内容,因为它已耗尽.

到目前为止,我已经设法创建一个包装器,从body读取所有参数并覆盖所有参数访问方法.但是如果我之前的链中的任何过滤器都会尝试访问任何参数,那么一切都会破坏,因为ServletInputStream将为空.

我可以以某种方式逃避这个问题吗?可能有不同的方法吗?

总而言之,如果我将在过滤器中读取原始请求主体,参数将从请求中消失.如果我读取单个参数,ServletInputStream将变为空,并且无法进行手动处理.而且,通过getParameter方法读取格式错误的参数是不可能的.

java http request

9
推荐指数
3
解决办法
4万
查看次数

Grails使用POST请求中的XML填充params

我有一个RestFull grails api,我通过grails Controller公开.我需要自动绑定POST请求中发送的xml数据.我不认为使用groovy bindData(object,params)作为params引用似乎没有xml元素.我parseRequest=true在UrlMappings中使用了但是paramsObject没有xml元素.

我错过了一些其他配置,以便我的params对象自动填充xml body元素?

grails

2
推荐指数
1
解决办法
3370
查看次数

标签 统计

java ×3

http ×2

grails ×1

post ×1

request ×1

servlets ×1

web-applications ×1