lovef_16 2023-03-24 16:06 采纳率: 100%
浏览 34
已结题

想知道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的这个方法的输出是啥样的,我好实现

以上,多谢

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-03-29 15:41
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: 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);
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月7日
  • 已采纳回答 3月30日
  • 创建了问题 3月24日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加