我想设置REST API以支持通过Java下载文件(目前不需要java部分 - 我在这里说它,所以你可以让你的答案更具体针对我的问题)。
我该怎么做?
例如,我将此文件放在一个文件夹(./java.jar)中,如何以可供Java客户端下载的方式对其进行流式传输?
我忘了这说,这是针对某些付费内容的。 我的应用应该能够做到这一点
客户端:使用用户名发布到服务器,传递。
休息:相应地响应用户购买的内容(如果已购买该文件,请下载)
客户端:下载文件并将其放在
x
文件夹中。
我想在base64中编码一个文件,然后将编码结果发布到通常的.json中(可能有一个好名字 - 对java应用程序很有用,并且代码在里面 - 虽然我不知道此时应该如何重建文件)。 < - 这看似合理吗?或者有更简单的方法吗?
此外,请如果不必要,请不要保留,尽管问题中没有代码,但这并不意味着我没有研究过它,它只是意味着我发现什么都不适合我的情况。
感谢。
答案 0 :(得分:0)
您需要的是使用有效网址的常规文件流。
以下代码摘自here
import java.net.*;
import java.io.*;
public class URLReader {
public static void main(String[] args) throws Exception {
URL oracle = new URL("http://www.oracle.com/");
BufferedReader in = new BufferedReader(
new InputStreamReader(oracle.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
答案 1 :(得分:0)
根据您的需求,根据您对上述答案的更新评论,您可以在用户登录后(使用您希望收到的Auth和其他标题/正文)调用您的REST端点并继续下载。
将jar /可下载内容转换为字节。更多关于此 Java Convert File to Byte Array and visa versa
稍后,如果您不希望在前面的答案中提到常规流式传输,您可以将字节内容作为Base64字符串放在正文中。您可以使用下面的代码从字节数组中编码到Base64。
Base64.encodeToString(byte[], Base64.NO_WRAP + Base64.URL_SAFE);
同样,有很多方法可以做到这一点,这是你可以使用REST做的一种方法。