试着建立http://IP:4567/foldername/1234?abc=xyz
.我不太了解它,但我在下面写了从谷歌搜索的代码:
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
public class MyUrlConstruct {
public static void main(String a[]){
try {
String protocol = "http";
String host = "IP";
int port = 4567;
String path = "foldername/1234";
URL url = new URL (protocol, host, port, path);
System.out.println(url.toString()+"?");
} catch (MalformedURLException ex) {
ex.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我能够建立URL http://IP:port/foldername/1234?
.我被困在查询部分.请帮助我前进.
vsm*_*kov 52
你可以通过原始规范
new URL("http://IP:4567/foldername/1234?abc=xyz");
Run Code Online (Sandbox Code Playgroud)
或者您可以采用类似的org.apache.http.client.utils.URIBuilder
方式,并使用正确的url编码以安全的方式构建它
URIBuilder builder = new URIBuilder()
builder.setScheme("http")
builder.setHost("IP")
builder.setPath("/foldername/1234")
builder.addParameter("abc", "xyz")
URL url = builder.build().toURL()
Run Code Online (Sandbox Code Playgroud)
Tyl*_*ong 22
有一个非常受欢迎的名为OkHttp的图书馆,已经在GitHub上出演了20K次.使用此库,您可以构建如下所示的URL:
import okhttp3.HttpUrl;
URL url = new HttpUrl.Builder()
.scheme("http")
.host("example.com")
.port(4567)
.addPathSegments("foldername/1234")
.addQueryParameter("abc", "xyz")
.build().url();
Run Code Online (Sandbox Code Playgroud)
或者你可以简单地解析一个URL:
URL url = HttpUrl.parse("http://example.com:4567/foldername/1234?abc=xyz").url();
Run Code Online (Sandbox Code Playgroud)
VGR*_*VGR 16
通常,非Java术语,URL是一种特殊类型的URI.您可以使用URI类(比Java 1.0以来的古老URL类更现代)来更可靠地创建URI,并且可以使用URI 的toURL方法将其转换为URL :
String protocol = "http";
String host = "example.com";
int port = 4567;
String path = "/foldername/1234";
String auth = null;
String fragment = null;
URI uri = new URI(protocol, auth, host, port, path, query, fragment);
URL url = uri.toURL();
Run Code Online (Sandbox Code Playgroud)
注意,path
需要以斜杠开头.
Sai*_*pta 14
UriComponentsBuilder.newInstance()\n .scheme(scheme)\n .host(host)\n .path(path)\n .build()\n .toUri()\n .toURL();\n
Run Code Online (Sandbox Code Playgroud)\n\n\n新类通过提供对准备 URI 的各个方面(包括构造、模板变量扩展和编码)的细粒度控制来
\nUriComponentsBuilder
帮助创建\n实例。UriComponents
\xe2\x96\xba阅读更多...
\n\xe2\x96\xba JavaDoc
\n如果您碰巧已经在使用 Spring,我发现org.springframework.web.util.UriComponentsBuilder
它非常漂亮。以下是您将如何在您的情况下使用它。
final URL myUrl = UriComponentsBuilder
.fromHttpUrl("http://IP:4567/foldername/1234?abc=xyz")
.build()
.toUri()
.toURL();
Run Code Online (Sandbox Code Playgroud)