
[英]Is it possible to save zip file read from http and directly saving it to Databse without creating it physically in java
[英]In Spring Boot Java Extracting the zip file from response without physically saving it
在 Spring Boot 中作为响应来的 zip 文件在保存前结构已损坏,但我物理保存时没有问题。 我需要把zip文件里面的文件拿出来,处理数据库里的信息,但是我不能物理下载这个文件,因为我用的是GCP。 如何提取此 zip 文件中的文件作为响应? 我该如何解决这个问题,请帮忙。
这是在保存之前在 response.body() 中的样子(部分):
"PK C`iUq �=n 緰) bu_customerfile_22110703_B001_10292121141�]i��������RI%U�v����CJ� ��×��My��y/ίϹ������ =>����}����8����}~}~yz... $��F��/��8˳��L��_��QaZ-q��F��d4γE��[��(f��8��D��0��2_��P"��I��A��D� ��4��������D��(��T��$.��<��,��i]Fe��iM��q< ʨ��Olmi��(&����?y��y4�� <��Q��X����p�@��6f-.F���� ��8����"I㢨ˤU]��E������ %@������(W��8*0c� p:L��:�� }��G����e<����a��"
这是请求调用:
OkHttpClient client1 = new OkHttpClient().newBuilder()
.build();
MediaType mediaType1 = MediaType.parse("text/plain");
RequestBody body1 = RequestBody.create(mediaType1, "");
Request request1 = new Request.Builder()
.url(vers)
.method("POST", body1)
.addHeader("Cookie", "ASP.NET_SessionId=44dxexdxass5mtf00udjfwns")
.build();
Response response1 = client1.newCall(request1).execute();
String data = response1.body().string();
这会是编码类型的问题吗? String 是 UTF-16 类型(我认为)。 尝试更像是字节数组/向量的不同数据类型。
尝试像这里提到的那样: Having trouble reading http response into input stream
更新:获取字节为 stream 的响应并将其送入 ZipInputStream object,如此处所示https://zetcode.com/java/zipinputstream/#:~:text=ZipInputStream%20is%20a%20Java%20class,both% 20 个压缩的 %20 和 %20 个未压缩的 %20 个条目。
然后遍历包含的文件以找到您需要的文件。 然后检索与压缩文件关联的 stream。 然后你可以从那里阅读。 (我意识到这有点麻烦,但自从我使用 Zip 文件和 Java 以来已经有一段时间了。)这应该会让您走上正确的道路。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.