zoukankan      html  css  js  c++  java
  • 在单点登录中传递参数问题

    这两天一直忙一个事情,在单点登录运用的过程中因为要传6个参数,get请求每次只能获取第一个参数,post只能正常访问路径,而参数却全部为null.

    经历了postman的各种测试,晕头转向,在产品部老哥的一句话让我醍醐灌顶瞬间清醒,为什么不尝试把我们习惯的http请求中多参数传递的拼接符号

    “&”尝试转义!

    瞬间成功!

    这件事让我琢磨了两天,因为一句话而茅塞顿开。

    失败的请求方式:

    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。

    成功的请求方式:(把原来的参数拼接符号“&”替换为“%26”)

    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

      

  • 相关阅读:
    codeforces C. No to Palindromes!
    codeforces D. Pashmak and Parmida's problem
    codeforces C. Little Pony and Expected Maximum
    codeforces D. Count Good Substrings
    codeforces C. Jzzhu and Chocolate
    codeforces C. DZY Loves Sequences
    codeforces D. Multiplication Table
    codeforces C. Painting Fence
    hdu 5067 Harry And Dig Machine
    POJ 1159 Palindrome
  • 原文地址:https://www.cnblogs.com/ckxlovejava/p/6963746.html
Copyright © 2011-2022 走看看