解決了中文亂碼的http的get和post請求demo

  直接下載demo

         Demo分爲兩部分,一部分是web,MyEclipse完成,另一部分是客戶端,用Android Studio完成。

   首先說一下在完成這個demo時我所遇到的瓶頸,在get請求中剛開始是有寫了實現了Filter接口的類,並且在web.xml中配置,期望能解決get請求中文亂碼問題,但是我發現web.xm中的Filter並沒有生效,查證多方資料也沒有找到明確的答案,有朋友只會在Struts框架下,配置Filter。因此只好作罷,先暫時放在這裏,以後有類似需求時,說不定我已經知道具體原因了。(如果有夥伴們知道這個問題,希望回覆告知我一聲,不甚感激)。

   在Android客戶端向web端發起含有中文的http get請求時,總是出現???亂碼問題,後來我發現我忘記了重要一步,那就是對url進行編碼,具體的代碼如下:

 StringBuilder sb = new StringBuilder();
 sb.append(URL);
 sb.append("?");
 sb.append("title=");
 sb.append(URLEncoder.encode(mEtGetTitle.getText().toString()));
 sb.append("&timeLength=");
 sb.append(mEtGetTimeLength.getText().toString());
 getSuccess = ServiceTool.getHttp(sb.toString());

       GET請求比較簡單,參數是附在網址中,它的問題在於解決中文參數的亂碼問題。

       1、客戶端 url編碼爲UTF-8

       2、Web端 將有中文的字段值從ISO-8859-1轉變成 UTF-8,這是因爲Tomcat服務器默認使用的編碼格式是ISO-8859-1,我們的客戶端使用的編碼是UTF-8,要保持一致,才能避免亂碼問題。

       POST請求的參數是在請求頭的後面,因此在把必須要的請求頭寫完後,再將真正的數據寫入web端即可。在寫入之前,一定要調一下conn.getResponseCode(),不然它不會真正的寫入。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章