繁体   English   中英

将逗号添加到java.net.URL

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM