我想从Swing应用程序发送HashMap到Web Application.HashMap类型为。它包含一个字符串,ArrayList和字节数组。我想在Web应用程序中检索此地图。使用URLConnection发送和检索地图
摇摆端代码:
private static void sendMap()
{
System.out.println("Sending MAP");
byte[] bytes=getByteArray();
ArrayList<String> list =new ArrayList<String>();
list.add("ABC");
list.add("XYZ");
list.add("ABXY");
Map<String, Object> params=new HashMap<String, Object>();
params.put("Type", "Document");
params.put("bytes", bytes);
params.put("PartyNameList", list);
try {
URL url= new URL(iinkiturl+"/getMap?id=1234567");
URLConnection uc = url.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(false);
DataOutputStream dstream = new DataOutputStream(uc.getOutputStream());
// The POST line
System.out.println(toByteArray(params));
dstream.write(params.toString().getBytes());
dstream.close();
InputStream in = uc.getInputStream();
int x;
while ((x = in.read()) != -1) {
System.out.write(x);
}
in.close();
BufferedReader r = new BufferedReader(new InputStreamReader(in));
StringBuffer buf = new StringBuffer();
String line;
while ((line = r.readLine()) != null) {
buf.append(line);
}
} catch(Exception exception)
{
exception.printStackTrace();
}
}
Web应用程序端:
InputStream in = request.getInputStream();
BufferedReader r = new BufferedReader(new InputStreamReader(in));
StringBuffer buf = new StringBuffer();
String line;
while ((line = r.readLine())!=null) {
buf.append(line);
}
System.out.println("Buffer ======= "+buf.toString());
输出:
缓冲======= {类型=归档,PartyNameList = [ABC, XYZ,ABXY],字节= [B @ 24c0f1ec}
如何从此缓冲区获取Map对象。或者是否有任何替代解决方案来实现这一点。提前致谢。
见XML或JSON对象,而相应的API,以生产和在Java中使用它们... –
使用Arrays.toString到修复字节数组 –
通常项目在某个框架上增长。几乎所有人都有对编码/解码参数的概念。 –