想知道Java中request.getParameter(key)的详细输出

我有这么一段json

{
    "taskId":123456789,
    "taskName": "123",
    "didNumbers": [
        "12345678",
        "12345679"
    ],
    "reTellConf": {
        "interval": 1,
        "count": 2,
        "condition": {
            "replyStatusList": [
                "001",
                "002",
                "003",
                "004"
            ],
            "executeTimeInterval": [
                {
                    "startTime": "00: 00: 00",
                    "endTime": "23: 59: 59"
                }
            ],
            "blacklistGroups": []
        }
    }
}

有没有兄弟能放进 HttpServletRequest request,我想看下request.getParameter(“reTellConf”) 的输出?

因为我想用c#的.GetMemberValue(key),获取所有value,所以想知道java的这个方法的输出是啥样的,我好实现

以上,多谢

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7448830
  • 这篇博客也不错, 你可以看下解决httpServletRequest.getParameter获取不到参数
  • 除此之外, 这篇博客: httpServletRequest.getParameter 参数中存在“&”导致获取不到完整参数的问题中的 解决方案 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    以上就是事情的起因,期初我的建议是他们那边能不能换成 json 格式的接收,我们这边直接发送 json 格式的数据,这样应该不会有问题,但是他们死活不愿意改。
    后续方案是我们将参数中的 & 进行 URL 编码,将其转化为 %26。

    我们实现的方法大概如下:

        public String pay(String url, Map<String, String> params) {
            URL u = null;
            HttpURLConnection con = null;
            // 构建请求参数
            StringBuffer sb = new StringBuffer();
            String strResult = null;
            if (params != null) {
                for (Entry<String, String> e : params.entrySet()) {
                    sb.append(e.getKey());
                    sb.append("=");                
                    sb.append(e.getValue());
                    sb.append("&");
                }
                strResult = sb.substring(0, sb.length() - 1);
            }
            
            // 尝试发送请求
            try {
                u = new URL(url);
                con = (HttpURLConnection) u.openConnection();
                // POST 只能为大写,严格限制,post会不识别
                con.setRequestMethod("POST");
                con.setDoOutput(true);
                con.setDoInput(true);
                con.setUseCaches(false);
                con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream(), "UTF-8");
                osw.write(sb.toString());
                osw.flush();
                osw.close();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (con != null) {
                    con.disconnect();
                }
            }
            // 读取返回内容
            StringBuffer buffer = new StringBuffer();
            try {
                //一定要有返回值,否则无法把请求发送给server端。
                BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
                String temp;
                while ((temp = br.readLine()) != null) {
                    buffer.append(temp);
                }
            } catch (Exception e) {
                logger.error("*****报错:", e);
            }
    
            return buffer.toString();
        }
    

    改造为:

                    String value = e.getValue();
                    if (value.contains("&")) {
                        try {
                            // URL编码,针对“&”进行处理,防止截取参数不完整导致验签失败
                            value = URLEncoder.encode(value, "UTF-8");
                        } catch (UnsupportedEncodingException e1) {
                            e1.printStackTrace();
                        }
                    }
                    sb.append(value);
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

返回的应该是reTellConf中包含JSON数据的字符串