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