【问题标题】:How to get the contents from a URL which is passed as a request parameter如何从作为请求参数传递的 URL 中获取内容
【发布时间】:2017-07-12 09:55:41
【问题描述】:

我正在尝试从我的 GET 调用中的外部 URL 获取内容,例如

http://localhost:8080/getinfo?url=http://hello-ext.com/Serving?cn=display&c=23&pl=VAST&pli=21933633&PluID=0&pos=4729&ord=[timestamp]&cim=1

但是,当我调试时,我可以看到 URL 被截断为 http://hello-ext.com/Serving?cn=display

省略第一个 '&' 之后的内容。如何为我的 GET 方法传递整个 URL 以便我得到

字符串 URL = http://hello-ext.com/Serving?cn=display&c=23&pl=VAST&pli=21933633&PluID=0&pos=4729&ord=[timestamp]&cim=1

【问题讨论】:

  • 您应该对整个内部 URL 进行 URL 编码。否则,这些参数将被视为顶级 URL 的一部分。事实上,每当你传递一个参数值时,你都应该对其进行 URL 编码,因为它可能包含特殊字符,无论它是否是 URL。
  • 尝试做一个像&这样的url编码可以写成%26,空格写成%20&得到它&解码它
  • @RealSkeptic - 在我的休息控制器方法中使用“@Encoded”属性?
  • 与服务器端无关。您应该在 sending 端执行此操作。

标签: java get httprequest


【解决方案1】:

试试

String url="http://hello-ext.com/Serving?cn=display&c=23&pl=VAST&pli=21933633&PluID=0&pos=4729&ord=[timestamp]&cim=1";
String encodedurl=URLEncoder.encode(url,"UTF-8");

【讨论】:

  • 在其余控制器本身中,当我点击该方法时,我得到了截断的 URL。
猜你喜欢
  • 1970-01-01
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 2021-09-24
相关资源
最近更新 更多