diff --git a/src/main/java/ru/max/botapi/client/ClientResponse.java b/src/main/java/ru/max/botapi/client/ClientResponse.java index 370b8c2..b347250 100644 --- a/src/main/java/ru/max/botapi/client/ClientResponse.java +++ b/src/main/java/ru/max/botapi/client/ClientResponse.java @@ -43,7 +43,7 @@ public byte[] getBody() { } public String getBodyAsString() { - return new String(body, StandardCharsets.UTF_8); + return body == null ? "" : new String(body, StandardCharsets.UTF_8); } public Map getHeaders() { diff --git a/src/main/java/ru/max/botapi/queries/MaxQuery.java b/src/main/java/ru/max/botapi/queries/MaxQuery.java index e9ad888..a09f716 100644 --- a/src/main/java/ru/max/botapi/queries/MaxQuery.java +++ b/src/main/java/ru/max/botapi/queries/MaxQuery.java @@ -88,7 +88,11 @@ public static String substitute(String pathTemplate, Object... substitutions) { for (int i = 0; i < chars.length; i++) { char c = chars[i]; if (c == '{') { - i = pathTemplate.indexOf('}', i); + int closing = pathTemplate.indexOf('}', i); + if (closing == -1) { + throw new IllegalArgumentException("Malformed path template: unclosed '{' at index " + i + " in \"" + pathTemplate + "\""); + } + i = closing; sb.append(substitutions[nextSubst++]); continue; }