java - 尝试获取具有特定名称的客户时,加密提示 EOFException
问题描述
我正在使用 restful dis 开发一个 Intjellij 项目,并实现了在客户端和服务器端都实现的非常简单的加密。我调用的方法之一是 getAllCustomers,当我有随机名称的客户时它工作正常,但当我创建一个名称如“Morten”的客户时会崩溃。它在客户端产生“线程“主”com.google.gson.JsonSyntaxException:java.io.EOFException:输入结束第 1 行第 1 列 451 路径 $[12] 中的异常”。服务器端的控制台显示客户是通过加密发送的,但是当我调试解密时,它似乎并没有解密整个字符串。
这是加密类
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()));
}
}
有时错误发生在上面提到的最后,因为它似乎无法获得所需的最终数组括号
有时似乎无法解密整个字符串,我很茫然,有人知道问题可能是什么吗?
解决方案
推荐阅读
- rest - 通过 Google Apps 脚本 UrlFetchApp 上传 Salesforce 批量作业 CSV
- database - 为什么需要在操作系统中安装 ODBC 驱动程序
- c++ - 在函数和子函数中调用相同的临界区
- html - qrscan如何选择相机
- db2 - 更正我遇到错误的 DB2 查询
- javascript - Draftable.com API 在 Google App Script 中传递 JSON 时给出截断响应
- c# - 如何在 C# 的泛型函数中传递类型
- c++ - 具有默认构造函数的类的成员是否零初始化?
- java - 解决方案中的重复计划实体
- go - 在 Go 中创建一个并行单词计数器