android客户端序列化对象提交,服务器反序列化时出现ClassNotFoundException
16lz
2021-01-26
android客户端序列化对象提交,服务器反序列化时出现ClassNotFoundException
解决:在服务器端也要有相同的序列化类Person,同时包名也要一样. /** *@paramserStr *@throwsUnsupportedEncodingException *@throwsIOException *@throwsClassNotFoundException *@描述—— 将字符串反序列化成对象 */ publicstaticObject getObjFromStr(String serStr) throwsUnsupportedEncodingException, IOException, ClassNotFoundException { String redStr = java.net.URLDecoder.decode(serStr,"UTF-8"); ByteArrayInputStream byteArrayInputStream =newByteArrayInputStream( redStr.getBytes("ISO-8859-1")); ObjectInputStream objectInputStream =newObjectInputStream( byteArrayInputStream); Object result = objectInputStream.readObject(); objectInputStream.close(); byteArrayInputStream.close(); returnresult; } /** *@return *@throwsIOException *@throwsUnsupportedEncodingException *@描述—— 将对象序列化成字符串 */ publicstaticString getStrFromObj(Object obj)throwsIOException, UnsupportedEncodingException { ByteArrayOutputStream byteArrayOutputStream =newByteArrayOutputStream(); ObjectOutputStream objectOutputStream =newObjectOutputStream( byteArrayOutputStream); objectOutputStream.writeObject(obj); String serStr = byteArrayOutputStream.toString("ISO-8859-1"); serStr = java.net.URLEncoder.encode(serStr,"UTF-8"); objectOutputStream.close(); byteArrayOutputStream.close(); returnserStr; }
解决:在服务器端也要有相同的序列化类Person,同时包名也要一样. /** *@paramserStr *@throwsUnsupportedEncodingException *@throwsIOException *@throwsClassNotFoundException *@描述—— 将字符串反序列化成对象 */ publicstaticObject getObjFromStr(String serStr) throwsUnsupportedEncodingException, IOException, ClassNotFoundException { String redStr = java.net.URLDecoder.decode(serStr,"UTF-8"); ByteArrayInputStream byteArrayInputStream =newByteArrayInputStream( redStr.getBytes("ISO-8859-1")); ObjectInputStream objectInputStream =newObjectInputStream( byteArrayInputStream); Object result = objectInputStream.readObject(); objectInputStream.close(); byteArrayInputStream.close(); returnresult; } /** *@return *@throwsIOException *@throwsUnsupportedEncodingException *@描述—— 将对象序列化成字符串 */ publicstaticString getStrFromObj(Object obj)throwsIOException, UnsupportedEncodingException { ByteArrayOutputStream byteArrayOutputStream =newByteArrayOutputStream(); ObjectOutputStream objectOutputStream =newObjectOutputStream( byteArrayOutputStream); objectOutputStream.writeObject(obj); String serStr = byteArrayOutputStream.toString("ISO-8859-1"); serStr = java.net.URLEncoder.encode(serStr,"UTF-8"); objectOutputStream.close(); byteArrayOutputStream.close(); returnserStr; }
更多相关文章
- android 创建bitmap的多种方式
- 转:Android设计模式之观察者模式
- Android读取Assert文件夹下txt文本并变为String的方法
- Android(安卓)Camera内存问题剖析
- [置顶] Android(安卓)动画:你真的会使用插值器与估值器吗?(含详细实
- Android应用开发提高系列(1)――《Practical Java 中文版》读书笔
- Android(安卓)studio中TextView改变字体的两种方式(如仿宋、隶书)
- Android横屏开发的老梗---Fragment切换混乱重叠问题
- java/android 设计模式学习笔记目录