.asFormUrlEncoded()从hashMap中检索数据<string,string =“”> </string,>

时间:2015-04-10 12:23:35

标签: java playframework hashmap multipartform-data

我使用MultipartRequest将视频文件和一些用户详细信息发送到我的播放框架应用程序,用户详细信息将添加到服务器端的哈希地图Map<String, String> myMap;我已使用检索到我的视频文件。 asMultipartFormData();

我试图使用。asFormUrlEncoded();检索我的地图,但使用Map<String, String[]>

所以我只能从哈希映射中检索一个值,如果我尝试使用此代码再次检索

for(int i =0; i < myMap.size(); i++){
            String param = "param" + (i + 1);
            System.out.println(myMap.get(param)[i]);    
        }

我得到一个arrayOutOfBounds错误,是否有另一种方法可以从MultipartFormData中检索数据,还是可以以不同的方式实现我的循环?

也许我根本不应该使用.asFormUrlEncoded();来检索hashmap?

修改

我修改了我的代码以使用迭代器

Iterator<String> myVeryOwnIterator = myMap.keySet().iterator();
        while(myVeryOwnIterator.hasNext()) {
            String key=(String)myVeryOwnIterator.next();
            String[] value= myMap.get(key);
            System.out.println(key + " " + value);
        }

这会输出我的密钥,但会返回值Ljava.lang.String;@,我认为这是因为.asFormUrlEncoded();期待<String, string[]>,但我的hashMap使用<String, String>任何解决方案对此?

1 个答案:

答案 0 :(得分:0)

这是解决方案:

    Iterator<String> myVeryOwnIterator = myMap.keySet().iterator();
    while(myVeryOwnIterator.hasNext()) {
        String key=(String)myVeryOwnIterator.next();
        String[] value= myMap.get(key);
        System.out.println(key + " " + value[0]);
    }