gpt4 book ai didi

java - 使用 URLConnection 发送和检索 map

转载 作者:行者123 更新时间:2023-11-30 06:31:33 25 4
gpt4 key购买 nike

我想将 HashMap 从 Swing 应用程序发送到 Web 应用程序。HashMap 类型是 。它包含 One String、ArrayList 和 Byte Array。我想在网络应用程序中检索此 map 。

Swing 侧代码:

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());

输出:

缓冲区 ======= {Type=Filing, PartyNameList=[ABC, XYZ, ABXY], bytes=[B@24c0f1ec}

如何从此缓冲区获取 Map 对象。或者是否有任何替代解决方案可以实现这一目标。提前致谢。

最佳答案

您仅使用 toString() 方法。无法对其进行反序列化。使用 JSON 或 Java 序列化工具将 Map 移动到可传输状态( View )。并在客户端使用相同的工具对其进行反序列化。

关于java - 使用 URLConnection 发送和检索 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45997794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com