在單點登陸中傳遞參數問題

這兩天一直忙一個事情,在單點登陸運用的過程當中由於要傳6個參數,get請求每次只能獲取第一個參數,post只能正常訪問路徑,而參數卻所有爲null.html

經歷了postman的各類測試,暈頭轉向,在產品部老哥的一句話讓我醍醐灌頂瞬間清醒,爲何不嘗試把咱們習慣的http請求中多參數傳遞的拼接符號java

「&」嘗試轉義!web

瞬間成功!瀏覽器

這件事讓我琢磨了兩天,由於一句話而茅塞頓開。xss

失敗的請求方式:jsp

http://localhost:8090/gzdbthreeweb/control?pagesso&zxssoticket=Y4WNA3L4DLEBd5%2BWDWK%2F%2BOfnppmk9zCGVJ6La8Kl7aE%3D&_fwurl=//provide/receivePort.pt?
title=ckx060606&task_sys_source=民生系統&task_sys_sendid=OKCORT&source=DZGZH&remark=ZW&deptName=民政局
&attachment=%27172/fujian.doc@107/xxx.xml@61/vvv.pdf@71/zzz.xl%27

這樣的話咱們只能獲取請求路徑下的第一個參數title。ide

成功的請求方式:(把原來的參數拼接符號「&」替換爲「%26」)post

http://localhost:8090/gzdbthreeweb/control?pagesso&zxssoticket=l0gOUtjtcELg9qPzRK7yW6A9ob8%2Bn%2FzY%2B13cuE6bcYw%3D&_fwurl=/provide/receivePort.pt?
title=ckx060606%26task_sys_source=民生系統%26task_sys_sendid=OKCORT%26source=DZGZH%26remark=ZW%26deptname=民政局%27
%26attachment=%27172/fujian.doc@107/xxx.xml@61/vvv.pdf@71/zzz.xl%27

成功!能夠獲取每一個參數。測試

下面也將web中url請求中須要轉義的字符分享給你們,避免在小問題中浪費大時間:編碼

web 開發中經過問號(?)方式在瀏覽器地址欄中傳值時。瀏覽器是經過「&」來區分問號後的參數個數的。 若是出現傳值參數中帶有「&」時,在接受頁面就會出現錯誤,相似以下請求路徑:/next.jsp?param1=hendhs89&furej & param2=sss
參數param1中含有轉義字符「&」 ,這樣會致使被請求頁的參數接收錯誤。
在傳值前 經過 java.net.URLEncoder.encode(param1) 編碼處理後,可將轉義字符轉爲16進制;
1. + URL 中+號表示空格 %2B
2. 空格 URL中的空格能夠用+號或者編碼 %20
3. / 分隔目錄和子目錄 %2F
4. ? 分隔實際的 URL 和參數 %3F
5. % 指定特殊字符 %25
6. # 表示書籤 %23
7. & URL中指定的參數間的 分隔符%26
8. = URL中指定參數的值 %3D
9. ! URL中指定參數的值 %21
相關文章
相關標籤/搜索