【问题标题】:How can I pass a URL with query parameters to another URL as a query param?如何将带有查询参数的 URL 作为查询参数传递给另一个 URL?
【发布时间】:2018-12-13 18:43:21
【问题描述】:

根据主题,我正在尝试执行此操作,但使用检查网站将其标记为无效 URL:http://www.getlinkinfo.com/

我要验证的 URL 类型示例如下: http://www.google.com/?link=www.yahoo.com?value=foobar

这与我尝试使用的格式相似。我尝试过对各个部分进行编码,但它们都给出了相同的结果。

只编码值不起作用: http://www.google.com/?link=www.yahoo.com%3Fvalue%3Dfoobar

编码整个查询参数不起作用: http://www.google.com/?link%3Dwww.yahoo.com%3Fvalue%3Dfoobar

编码整个 URL 不起作用: http%3A%2F%2Fwww.google.com%2F%3Flink%3Dwww.yahoo.com%3Fvalue%3Dfoobar

有谁知道如何格式化 URL 以使其验证正常?

提前致谢

【问题讨论】:

    标签: html url query-parameters


    【解决方案1】:

    您可以像这样在 JavaScript 中使用encodeURI 方法:

    encodeURI("http://www.google.com/?link=www.yahoo.com%3Fvalue%3Dfoobar");
    

    这将导致:

    http://www.google.com/?link=www.yahoo.com%253Fvalue%253Dfoobar
    

    当您在http://www.getlinkinfo.com 的文本框中输入结果时,您的 URL 将成为有效的!

    【讨论】:

    • 非常感谢。真奇怪,我使用网站 url-encode-decode.com 进行编码,它正在将问号编码为 %3F,但上面的修复使用了 %253F 的编码。
    【解决方案2】:

    请看URLEncoder,例如:

    URLEncoder.encode("mysite.com?a=test&b=test", "UTF-8");
    

    应该给你mysite.com%2Fa%3Dtest%26b%3Dtest

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 2014-08-31
      • 2020-09-04
      • 1970-01-01
      • 2019-02-05
      • 2011-03-24
      • 2015-02-12
      相关资源
      最近更新 更多