我正在使用Restful Dis开发Intjellij项目,并实现了非常简单的加密,该加密在客户端和服务器端均实现。我调用的方法之一是getAllCustomers,当我有带有随机名称的客户时,它可以正常工作,但是当我创建一个名称为“ Morten”的客户时,崩溃将崩溃。它在客户端产生“在线程“主”中的com.google.gson.JsonSyntaxException:java.io.EOFException:在客户端的行1列451路径$ [12]处的输入结束”。服务器端的控制台显示,客户是通过加密发送的,但是当我调试解密时,似乎并不能解密整个String。
这是加密类
public class Encryption {
public static String encryptDecrypt(String rawString) {
char[] key = {'F', 'E', 'W', 'O', 'M','X','P'};
StringBuilder thisIsEncrypted = new StringBuilder();
for (int i = 0; i < rawString.length(); i++) {
thisIsEncrypted.append((char) (rawString.charAt(i) ^ key[i % key.length]));
}
// We return the encrypted string
return thisIsEncrypted.toString();
}
}
取决于创建用户所用的名称以及用作键的字符,有时它有时起作用,有时却不起作用。
public Trampoline<Void> getAllCustomers(){
try
{
String url = BASE+"customers";
String response = networkUtil.httpRequest(url, "GET");
response = Encryption.encryptDecrypt(response);
Customer[] customers = new Gson().fromJson(response, Customer[].class);
return Trampoline.more(() -> view.ShowAllCustomers(Arrays.asList(customers)));
}
catch (IOException e)
{
return Trampoline.more(()-> view.ShowMessage("Error getting customers from server. Message: " + e.getMessage()));
}
}
最终数组括号。
有时候似乎似乎无法解密整个String,我很茫然,有人知道这个问题可能是什么吗?