post字符 特殊字符處理【轉】


     今天和同事調試接口,由於產品設計的問題,傳遞的參數沒有做任何的限制。同事就在傳參數的時候加了些特殊字符到后台,但是后台打印的日志是 null... 然后上網搜了下解決辦法:轉 https://www.cnblogs.com/panie2015/p/5885922.html

   

1)下面列出了一些URL特殊符號及編碼十六進制值

  • +    URL 中+號表示空格             %2B 
  • 空格 URL中的空格可以用+號或者編碼 %20 
  •  /    分隔目錄和子目錄  %2F   
  • ?     分隔實際的 URL 和參數 %3F 
  • %   指定特殊字符 %25 
  • #    表示書簽 %23 
  • &    URL 中指定的參數間的分隔符 %26 
  • =    URL 中指定參數的值 %3D

 

   2)java 實現

    如果代碼采用java 來訪問請求的話,可以采用 URLEncoder.encode(param,"utf-8") 將參數值編碼,對應的解碼方法為URLEncoder.decode()

    java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s); 

    比如     

1
String str =  "http://localhost:8980/select?param="  + URLEncoder.encode( "bcpuser$userid$1#3#4" , "utf-8" ) ; <br>//得到結果  http://localhost: 8980 /BCPClientServer/select?param=bcpuser%24userid% 241 % 233 % 234

    得到url 可以直接在瀏覽器上訪問,如果后台采用的java+ springMVC,可以直接得到預期的參數(無需再次解碼的)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM