Update:添加日志实现,增加String类型的返回结果处理

This commit is contained in:
zhangjiayu 2021-12-24 17:37:00 +08:00
parent 99dc6a5b10
commit 4b185511d0
5 changed files with 46 additions and 9 deletions

View File

@ -41,6 +41,13 @@
<version>1.5.2</version> <version>1.5.2</version>
</dependency> </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -79,7 +79,7 @@ public interface Aria2Client {
String getServers(String gid); String getServers(String gid);
@Aria2Method(Aria2MethodName.TELL_ACTIVE) @Aria2Method(Aria2MethodName.TELL_ACTIVE)
String tellActive(List<String> keys); String tellActive(String... keys);
@Aria2Method(Aria2MethodName.TELL_WAITING) @Aria2Method(Aria2MethodName.TELL_WAITING)
String tellWaiting(int offset, int num, String... keys); String tellWaiting(int offset, int num, String... keys);

View File

@ -97,7 +97,9 @@ public class Aria2WebSocketProxy implements InvocationHandler {
private <T> T sendRequest(Aria2WebSocketRequest request, Type resultType) { private <T> T sendRequest(Aria2WebSocketRequest request, Type resultType) {
String id = request.getId(); String id = request.getId();
webSocket.send(serializeRequest(request)); String body = serializeRequest(request);
log.debug("send body:{}", body);
webSocket.send(body);
JsonObject returnResult = null; JsonObject returnResult = null;
while ((returnResult = this.webSocket.getResponse(id)) == null) { while ((returnResult = this.webSocket.getResponse(id)) == null) {
Aria2WebSocketClientException exception = this.webSocket.getException(id); Aria2WebSocketClientException exception = this.webSocket.getException(id);
@ -106,6 +108,9 @@ public class Aria2WebSocketProxy implements InvocationHandler {
} }
} }
JsonElement result = returnResult.get("result"); JsonElement result = returnResult.get("result");
if (resultType.equals(String.class)) {
return (T) result.toString();
}
return gson.fromJson(result, resultType); return gson.fromJson(result, resultType);
} }
@ -145,8 +150,8 @@ public class Aria2WebSocketProxy implements InvocationHandler {
@Override @Override
public void onMessage(String message) { public void onMessage(String message) {
JsonElement jsonElement = JsonParser.parseString(message); log.debug("receive message:{}", message);
JsonObject jsonObject = jsonElement.getAsJsonObject(); JsonObject jsonObject = JsonParser.parseString(message).getAsJsonObject();
String id = jsonObject.get("id").getAsString(); String id = jsonObject.get("id").getAsString();
if (id == null) { if (id == null) {
return; return;

View File

@ -0,0 +1 @@
org.slf4j.simpleLogger.defaultLogLevel=DEBUG

View File

@ -2,8 +2,11 @@ import cn.montaro.aria2.Aria2Client;
import cn.montaro.aria2.Aria2ClientFactory; import cn.montaro.aria2.Aria2ClientFactory;
import cn.montaro.aria2.client.websocket.Aria2WebSocketConfig; import cn.montaro.aria2.client.websocket.Aria2WebSocketConfig;
import cn.montaro.aria2.client.websocket.Aria2WebSocketClient; import cn.montaro.aria2.client.websocket.Aria2WebSocketClient;
import com.sun.org.apache.xpath.internal.SourceTree;
import org.junit.Test; import org.junit.Test;
import javax.lang.model.element.VariableElement;
import java.sql.Array;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -16,11 +19,32 @@ import java.util.Map;
*/ */
public class Aria2WebSocketClientTest { public class Aria2WebSocketClientTest {
Aria2WebSocketConfig config = new Aria2WebSocketConfig().setSecret("123456");
Aria2Client client = Aria2ClientFactory.webSocketClient(config);
@Test @Test
public void test() { public void tellActive() {
Aria2WebSocketConfig config = new Aria2WebSocketConfig().setSecret("123456"); String s = client.tellActive();
Aria2Client client = Aria2ClientFactory.webSocketClient(config); System.out.println(s);
String version = client.getVersion(); }
System.out.println(version);
@Test
public void tellWaiting() {
String s = client.tellWaiting(0, 1000, null);
System.out.println(s);
}
@Test
public void getGlobalStat(){
String globalStat = client.getGlobalStat();
System.out.println(globalStat);
}
@Test
public void changeUri() {
List<String> addUris = new ArrayList<String>();
addUris.add("https://mirrors.tuna.tsinghua.edu.cn/centos/8.5.2111/isos/x86_64/CentOS-8.5.2111-x86_64-dvd1.iso");
String result = client.changeUri("97d4d126a7263df8", 1, new ArrayList<String>(), addUris);
System.out.println(result);
} }
} }