android兼容 -- socket通信--接口在某个手机可正常访问但是连接出错

DRPrincess 2016-05-30 02:25:58
拿登录接口举例

我平时测试用的手机 android4.4 华为荣耀6plus 可正常登录
今天用同事的手机 android5.0 vivo X5pro android5.0 正确输入用户名,密码,显示用户名和密码不匹配

1.断点调试和打印发现,获取的信息都是正确的
2.为了防止空格误导,已经使用了trim()
3.最后没办法了,直接在代码里面把账号密码写上去,还是显示用户名和密码不匹配

这里求各位大神解答,不胜感激。
...全文
317 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
DRPrincess 2016-05-31
  • 打赏
  • 举报
回复
问题解决了。 问题出现原因是: 在不同android系统上,通过反射取得的map中数据排序不同导致的 所以拼接的字符串顺序和服务端顺序不一致,导致的错误, 解决方法是: 把map排序后再拼接 map排序: public static Map<String, String> sortMapByKey(Map<String, String> oriMap) { if (oriMap == null || oriMap.isEmpty()) { return null; } Map<String, String> sortedMap = new TreeMap<String, String>( new Comparator<String>() { @Override public int compare(String lhs, String rhs) { return lhs.compareToIgnoreCase(rhs); } }); sortedMap.putAll(oriMap); return sortedMap; }
nanjun520 2016-05-30
  • 打赏
  • 举报
回复
先去服务器看看接受到的数据是什么,你在发送端口看看发送的数据是什么,系统应该不不会去修改数据吧
afunx 2016-05-30
  • 打赏
  • 举报
回复
这个应该不属于socket的问题,而是属于UI的问题吧。你需要把从UI获得的String打印出来,看看是不是多加了一些其他字符。
DRPrincess 2016-05-30
  • 打赏
  • 举报
回复
问题补充: 下午测试发现有一补红米手机也出现可上面所说的问题,而且这个红米的android版本同样是5.0 会因为是android5.0 的版本兼容问题吗

80,493

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧