【问题标题】:Multipart request via JSON not getting the response?通过 JSON 的多部分请求没有得到响应?
【发布时间】:2013-04-23 08:33:41
【问题描述】:

我在 java 中面临的问题是,当我通过多部分的 JSON 发出请求时,我无法从服务器获得响应。

这里是最需要的 javascript 块:

$.ajaxFileUpload({ url: "/iview",
                  secureuri:false,
                 fileElementsId:fileIds,
                 dataType:entity.config.dataType?entity.config.dataType:"text",
                 data:{appmode:entity.config.appmode,   
                 json:requestObject,"__RequestType":"ajax"},
                 success: function (data, status){
                  for(var ent in fileIds){
                                    entityObject[ent].object = document.getElementById(fileIds[ent]);
                                    entityObject[ent].object.id = fileIds[ent];
                                }
                                requestResponse(data);
                            },
                            error: function (data, status, e){
                                Cyberoam.removeOverLay();
                                Cyberoam.messageBox({message:reportlabels.ConnectionLostMsg,autoClose:true});
                            },timeout:30*60*1000
                        }
                    );

以下是发送响应的 servlet 代码:

PrintWriter out =response.getWriter();
response.setContentType("text/plain");                
out.println(new String(("status").toString().getBytes("UTF-8")));
out.close();    

所以请帮助获取 JSON 的多部分请求的响应??

提前致谢。

【问题讨论】:

  • 不确定,但您的网址看起来很奇怪。

标签: java javascript json


【解决方案1】:

你明白这是做什么的吗?

out.println(new String(("status").toString().getBytes("UTF-8")));

让我们重写它,以便我们可以查看不同的部分。

String s1 = "status";
String s2 = s1.toString();
byte[] bytes = s2.getBytes("UTF-8");
String s2 = new String(bytes);
out.println(s2);

这是正在发生的事情:

  • 您有一个包含“状态”的字符串,并在其上调用toString()。这没有任何作用。
  • 然后将字符串转换为字节数组。字节数组将包含以 UTF-8 编码的字符串内容。
  • 然后将字节解释回字符串。您没有指定字符编码,因此使用系统的默认字符编码,可能是也可能不是 UTF-8。
  • 然后将结果(可能包含也可能不包含“状态”,具体取决于系统的默认字符编码)打印到out

这很可能不符合您的要求。你可以写:

out.println("status");

如果那是你想要的。

找出应该从 Java 代码发送的确切响应,并编写代码以正确格式发送响应。

【讨论】:

  • 这只是我展示的示例..因为我没有从服务器获得任何东西。那是我的服务器变量,但为了在这里发布,我已经替换了它。但是忘记替换大代码..抱歉,