如何将带有查询参数的 URL 作为查询参数传递给另一个 URL?

How can I pass a URL with query parameters to another URL as a query param?

根据主题,我正在尝试这样做,但它被标记为无效 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 以使其验证正常?

提前致谢

请看URLEncoder,例如:

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

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

希望对您有所帮助。

您可以像这样在 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 有效的结果!