今天遇见Android与后台交互出现乱码的问题,觉得有必要总结一下,作为参考,遂著文以记之。
交互?通俗点就是GET,POST,当然远远不止这些,我也记不住就不提了,常用的就是这俩。
二者的区别:
Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为”GET”,实质上,GET和POST只是发送机制不同,并不是一个取一个发!
1.安全性:GET请求,参数会以&连接在URL尾部,可见,PSOT请求,会将参数放在body中,不可见。
解决:理论上我们可以对参数进行加密,这样就算参数可见也不会泄露问题,如果是黑客,你咋样都不安全,所以对于安全,看个人理解了。
2.长度限制:GET请求理论上提交的数据最多只能是1024字节,POST没有这种限制,可以传大量数据。
解决:GET请求通过URL传递参数,URL越长,则提交数据越多,二者成正比,
但是Http协议并没有对URL长度做出限制,这个显示是浏览器对URL做的限制。同理,POST也是如此,而之所以会有上传数据限制,是由服务器处理程序的能力决定的。
乱码解决办法:
1.双方约定同样的编码方式(一般都是UTF-8),Android studio使用者只需要修改这几个地方
就这么几个地方就行了
2.就需要检查交互方法,后台post提交则需要UTF-8编码,get提交这需要iso 8859-1编码
所以如果后台要用utf-8编码的话,那么你就要post你的接口。
3.如果还不行,就要后台检查是否添加这一句:
request.setCharacterEncoding(“utf-8”)
默认是ISO-8859-1;该方法必须在response.getWriter()之前进行设置
总结完毕!