Java获取POST参数问题

时间:2016-06-06 07:31:03

标签: java post

我尝试将从网站发布的POST参数发送到Java WebApp。 java应用程序正在使用一个名为EchoStudio的框架。

这是Java端代码:

ContainerContext context = (ContainerContext) getContextProperty(ContainerContext.CONTEXT_PROPERTY_NAME);

    ClientProperties clientProperties = context.getClientProperties();

    for (String s : clientProperties.getPropertyNames()) {
        System.out.println(s + " = " + clientProperties.get(s));
    }
    Iterator entries = context.getInitialRequestParameterMap().entrySet().iterator();
    while (entries.hasNext()) {
      Entry entry = (Entry) entries.next();
      System.out.println(entry.getKey() + "/" + entry.getValue().toString());
    }

输出显示键,但不显示值(entry.getValue(。。toString()),我有这个值的错误:

java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String

2 个答案:

答案 0 :(得分:0)

当您尝试将类的数组类型转换为线性类型时,JVM会抛出

java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String

在这种情况下,尝试转换String -> String[]或反之亦然会导致JVM在运行时抛出此特定异常。

我建议您通过在entry语句上设置断点来检查println的类型,并检查entry变量。

答案 1 :(得分:0)

context.getInitialRequestParameterMap()的类型应为Map<String, String[]>

引发ClassCastException是因为您将String[]投射到String(来自签名[Ljava.lang.String,您可以告诉String[]

首先尝试将他们的entry.getValue()转换为String[]