我有这个问题:
我需要从服务器下载一个zip文件,这个zip包含。xod和。巴布亚新几内亚。我正在使用AngularJS,JavaSpring,来克服跨域问题,我的htt。获取java spring控制器的角度调用,它将进行真正的get调用。我必须下载zip-
这是我的角度代码:
var req = {
method: 'GET',
url: CONTEXT_PATH+"/services/data/"+meetingId,
headers: {
'Content-Type': undefined
}
}
$http(req).then(function(data){
console.log("rest call done!");
console.log(data);
});
这是java spring代码:
@RequestMapping(value="/data/{meetingId}", method = RequestMethod.GET)
public Buffer getMeeting(@PathVariable(value="meetingId") String meetingId) {
byte[] file = new byte[2048];
Buffer buf =null;
try {
String url = getContentServer()+"/data?username="+getUsername()+"&password="+getPassword()+"&id="+meetingId;
logger.info("start Rest template");
RestTemplate templ = new RestTemplate();
file = templ.getForObject(url, byte[].class);
logger.info("PRE BUF");
buf = ByteBuffer.wrap(file);
logger.info("POST BUF");
} catch (Exception e) {
String msg = "Error retrieving meeting list";
logger.error(msg, e);
}
logger.info("file zip --> "+file.length);
logger.info("buf --> "+buf+" -- buf.array --> "+ buf.array());
return buf;
}
这是控制台。日志:
Object{data:"UEsDBBQACAAIAA5IpkgAAAAAAAAAAAAAAMTYwMzQucG...AcqwpAGxvZ28ucG5nUEsFBgAAAAAIAAgAuwEAAMa/KQAAAA==",状态: 200,配置: Object, statusText:"OK"}
我不知道我可以解码这个缓冲区,并在它的客户端提取文件。
谢谢。
我稍微搜索了一下,试图找到解决办法。我的疑问是:您保存在dataBase中的数据是blob类型的,或者如果您只保存文件的路径就可以了?
因为我认为在服务器端这样做更好。我喜欢在服务器端工作,而在客户端工作就越少。因此,在搜索控制zip文件的java类时,我发现:https://docs.oracle.com/javase/7/docs/api/java/util/zip/ZipFile.html
我在服务器端编写了以下代码(未进行测试,因此可能需要稍加修改):
Enumeration<E> listEntries = zip.entries()
for (listEntries; listEntries.hasMoreElements();) {
ZipEntry item = getEntry(listEntries.nextElement().toString())
InputStream fileStream = getInputStream(item)
}
使用该InputStream,您可以返回未压缩文件的名称列表或hashmap、arraylist或流列表和/或其文件名或任何您需要的内容。
List<String> fileNames
或
HashMap<String, Object> filesStreams
例如。
只是我不太熟悉Spring。它是可以返回一个列表还是你必须返回一个缓冲区?如果你必须返回缓冲区,告诉我,我会找到另一个解决方案。;)
我只是有一个关于服务中http请求的结构和处理响应的问题。我正在使用Angular2。alpha46 Typescript(刚刚开始测试-我喜欢它…Ps…。感谢所有一直致力于它并通过github作出贡献的人) 因此,采取以下措施: 登录表单。组成部分ts 从这个组件中,我导入了我的userService,它将容纳我的超文本传输协议请求,以登录用户。 使用者服务ts 我想做的是能够处理http请求之
我的LogCat: 签名密钥(sw)为https://api.dropbox.com/1/shares/dropbox/a.jpg?oauth_consumer_key=2f2y1dyuqhp58ek 我对http没有太多经验。。 因为httpPost=新的httpPost(sw);工作正常,这是否意味着基本字符串签名正确? 还是我错过了什么?
我想知道你对这个概念的看法/意见。如果有替代方案?这是否可行/有益? 据我所知,对于每个http请求,服务器都会执行一些操作并返回http响应。 现在考虑任何场景,我们希望对服务器上运行的进程有更多的控制。 情景1:http请求发送- 在这里,资源被浪费了。 情况2:http请求发送- 在这里,客户端不知道服务器中运行的进程的状态。客户端必须等待,直到它获得超文本传输协议响应。 我的想法是:在初始
调用SOAX Web服务,并使用groovy脚本检查Web服务响应的超文本传输协议状态。在《骡子3》中,精彩的剧本是... 骡子4中的等价物是什么?谢谢。
我正在使用下面的代码登录apiendpoint并从中检索数据,但响应似乎已编码,我无法读取内容。我正在使用request-requestes-0.0.1 当我在控制台上打印相同的响应 有人能告诉我如何解码和读取响应中的数据吗
我用Ktor构建了一个Web服务器,并想缓存API方法结果。但是我不知道如何从下面call.response.代码中获取响应正文 如果我无法获得响应体,还有其他解决方案可以在Ktor中缓存API方法的结果吗?