網址: https://myproject.dev.com/methodology/Culture?contentName=abc & def&path=Test&type=folder
只需要從上面的 URL 中獲取查詢引數,但問題是 '&',contentName=abc & def所以在獲取 contentName 時,會在 abc、def 等兩部分中獲取值。
請建議獲取 contentName 的方法abc & def不是 abc,def。
uj5u.com熱心網友回復:
如果 & 字符是查詢字串中名稱或值的一部分,則必須對其進行百分比編碼。在給定的示例中:contentName=abc&def&path=Test&type=folder.
uj5u.com熱心網友回復:
如果我們傳遞任何型別的特殊字符,我們必須對這些值進行編碼。Java 提供了一個URLEncoder類,用于將任何查詢字串或表單引數編碼為 URL 編碼格式。在對 URI 進行編碼時,常見的缺陷之一是對完整的 URI 進行編碼。通常,我們只需要對 URI 的查詢部分進行編碼。
Map<String, String> requestParameters = new HashMap<>();
requestParameters.put("keyA", "abc123");
requestParameters.put("keyB", "val@!&$2");
String encodedURL = requestParameters.keySet().stream()
.map(key -> key "=" encodeValue(requestParameters.get(key)))
.collect(joining("&", "http://www.url_needed.com?", ""));
private String encodeValue(String value) {
return URLEncoder.encode(value, StandardCharsets.UTF_8.toString());
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/417609.html
標籤:
