在Java中调用Http请求

时间:2012-02-02 20:14:11

标签: java http

我有独立的,基于swing的应用程序,允许用户输入任何URL并返回状态代码。

我想让用户输入任何在浏览器中使用相同网址时有效的网址,无论网址是什么(例如带有特殊字符的参数,json字符串等)。

我该如何实现?

我尝试使用URL类,但在某些情况下,我看到一个网站不接受我提供的json字符串,尽管在将URL复制到浏览器时它已被接受。

2 个答案:

答案 0 :(得分:0)

您可能希望查看java.net.URI对象。一些构造函数将正确地转义扩展字符。

URI(String scheme, String authority, String path, String query, String fragment)

即便如此,您还需要仔细编码查询字符串,以确保JSON不会溢出到其他参数中,如果有&人物等。

答案 1 :(得分:0)

最后,这对我有用:

String urlStr = "http://abc.dev.domain.com/0007AC/ads/800x480 15sec h.264.mp4";
URL url = new URL(urlStr);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
url = uri.toURL();