从请求正文

时间:2016-07-21 09:14:08

标签: java httprequest

我有以下请求正文。

BODY:代码= 471b001b-432f-3172-b59f-2b03c7847cf6&安培; client_secret = AtO0zxf62KoYasYTobOGRXVRZXsa&安培; grant_type = authorization_code&安培; CLIENT_ID = 4rYClwGnY4CE_XXAkMCoWuI4mnIa&安培; REDIRECT_URI = HTTPS%3A%2F%2Fop.certification.openid.net%3A60746%2Fauthz_cb

我需要从请求正文中读取client_secret参数。我使用下面的代码来阅读请求正文。

Scanner scanner = null;
        try {
            scanner = new Scanner(request.getInputStream());
        } catch (IOException e) {

        }
        while (scanner.hasNextLine()) {
            stringBuilder.append(scanner.nextLine());
        }
        String requestBody = stringBuilder.toString();

我可以创建一个逻辑来从requestBody String中获取client_secret参数的值。但我需要知道我们是否有直接从HTTPRequest Body读取参数的方法。

任何建议都将受到高度赞赏。

感谢。

1 个答案:

答案 0 :(得分:1)

ServletRequest(以及扩展名,HttpServletRequest)(1)对象具有内置支持以获取请求的参数。

您可以使用以下方式获取特定参数:

String paramValue = request.getParameter('parameterName');

返回类型始终为String。 请注意,此方法也适用于GET请求(现在我猜你正在处理POST请求,因为参数在请求的主体内)。

您还可以查看getParameterMapgetParameterValuesgetParameterNames,看看是否可以使用。

HttpServletRequest Javadoc: http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletRequest.html

ServletRequest Javadoc: http://docs.oracle.com/javaee/7/api/javax/servlet/ServletRequest.html

(1):我认为这是你对象的类型,根据getInputStream(),如果我错了,请纠正我。