如何在java中构建url?

Man*_*nis 35 java string url http

我正在使用StringBuilder构建一个String

StringBuilder builder = new StringBuilder();
builder.append("my parameters");
builder.append("other parameters");
Run Code Online (Sandbox Code Playgroud)

然后我建立一个网址

Url url = new Url(builder.toString());
Run Code Online (Sandbox Code Playgroud)

然后我尝试连接

HttpURLConnection connection = (HttpURLConnection) url.openConnection();
Run Code Online (Sandbox Code Playgroud)

但是从我得到的结果来看,网址似乎并不正确.这就像某些参数被错误传递.这就是为什么我认为问题出在StringBuilder的一部分.

问题在于我试图传递的双参数.

double longitude = 23.433114;
String lng = String.ValueOf(longitude);
Run Code Online (Sandbox Code Playgroud)

然后我把它放在网址中.但如果我把它作为字符串给出,结果是正确的.

String lng = "23.433114"
Run Code Online (Sandbox Code Playgroud)

UrlEncoding是否必要?我将尝试下面的建议.

jhk*_*rus 75

试试apache URIBuilder:[ 文档 ]

import org.apache.http.client.utils.URIBuilder;

// ...

URIBuilder b = new URIBuilder("http://example.com");
b.addParameter("t", "search");
b.addParameter("q", "apples");

Url url = b.build().toUrl();
Run Code Online (Sandbox Code Playgroud)

Maven依赖:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

  • 工作完美无瑕.唯一的问题是它抛出了无法处理的检查异常. (6认同)