今天遇見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()之前進行設置
總結完畢!