簡體   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