本帖最后由 shuangyeying 于 2019-12-19 15:43 编辑
网上看到的例子都是 Python 的,也没有找到 Java 调用 Aria2 的相关例子。
这里随便写个 Java 使用 WebSocket 调用 Aria2 的例子。
自己也是在做爬虫的时候,需要调用 Aria2 来下载。
package priv.streamelody;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import java.net.URI;
import java.net.URISyntaxException;
public class Aria2RPCWebSocket extends WebSocketClient {
public Aria2RPCWebSocket(String url) throws URISyntaxException {
super(new URI(url));
}
@Override
public void onOpen(ServerHandshake shake) {
System.out.println("已经连接...");
}
@Override
public void onMessage(String s) {
}
@Override
public void onClose(int i, String s, boolean b) {
}
@Override
public void onError(Exception e) {
}
private static Aria2RPCWebSocket client;
public static void main(String[] args) {
try {
// 创建 WebSocket 客户端
client = new Aria2RPCWebSocket("ws://127.0.0.1:6800/jsonrpc");
// 连接 WebSocket 服务器
client.connect();
System.out.println(client.getReadyState());
// 当服务器连接上时,发送 Json 数据
while (!client.getReadyState().equals(READYSTATE.OPEN)) {
System.out.println("等待连接...");
}
// 开始下载
String url = "需要下载的文件地址";
String filePath = "Aira2的下载位置";
client.send("{\n" +
" \"jsonrpc\":\"2.0\",\n" +
" \"id\":\"qwer\",\n" +
" \"method\":\"aria2.addUri\",\n" +
" \"params\":[\n" +
" [\n" +
" \"" + "" + url + "\"\n" +
" ],\n" +
" {\n" +
" \"dir\":\"" + "" + filePath + "\"\n" +
" }\n" +
" ]\n" +
"}");
} catch (URISyntaxException e) {
e.printStackTrace();
} finally {
client.close();
}
}
}
|