最近工作中和第三方进行单点登录联调的时候遇到一个小坑,关于http请求问题。在请求链接中有了特殊符号例如
#字符在后台request取值时候为空。可以用字符的转义,当然也可以用post请求来解决参数问题。
案例:
(1)请求连接包含#,后边的参数获取都为空。
http://localhost:8080/ierp/?formId=pc_main_console#/dform&apptype=FACA&ticketId=18681569615
(2)将#号转义获取值正确。
http://localhost:8080/ierp/?formId=pc_main_console%23/dform&apptype=FACA&ticketId=18681569615
url出现了有+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值。
解决办法
将这些字符转化成服务器可以识别的字符,对应关系如下:
URL字符转义
用其它字符替代吧,或用全角的。
+ URL 中+号表示空格 %2B
空格 URL中的空格可以用+号或者编码 %20
/ 分隔目录和子目录 %2F
? 分隔实际的URL和参数 %3F
% 指定特殊字符 %25
# 表示书签 %23
& URL 中指定的参数间的分隔符 %26
= URL 中指定参数的值 %3D