[英]Commons VFS and Java.net.URL - Adding support for “sftp://” protocol
[英]Adding commas to java.net.URL
我试图在Elasticsearch的/ _cluster端点上运行查询。
我要执行以下操作:
https://<my cluster>/_cluster/state/version,master
但是,当我得到403响应代码时。
以前,我使用以下逻辑对字符串进行编码:
URL url = new URL(String.format(%s, %s, "myendpoint", "/_cluster/state/version,master"));
那没有用。
这也行不通:
url = new URI(String.format("%s%s", "myendpoint", "/_cluster/state/version,master", null)).toURL();
是否有适当的方法将逗号添加到java.net.URI?
编辑:URL没有问题。 例如,这将起作用:
URL url = new URL(String.format("%s", " http://localhost:9200/_cluster/state/version%5C%2Cnodes"));
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
我有一些专有的签名代码,这些代码添加了导致失败的连接属性。
您需要使用转义来构建URL.comma =%2C
我认为这对您有效:
final String ENCODING = "UTF-8";
String queryString =
"a=" + URLEncoder.encode("Frick&Frack", ENCODING) +
"&b=" + URLEncoder.encode("New York", ENCODING) +
"&c=" + URLEncoder.encode("US/Eastern", ENCODING) +
"&d=" + URLEncoder.encode("when?", ENCODING) +
"&e=" + URLEncoder.encode("20%", ENCODING) +
"&f=" + URLEncoder.encode("#1", ENCODING);
URI uri = new URI("http", null, "example.com", -1, "/accounts", queryString, null);
System.out.println(uri);
设置编码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.