From 30258c582cc065892afcc945e91bc8969220e619 Mon Sep 17 00:00:00 2001 From: Andreas Dyck Date: Fri, 2 Nov 2018 16:47:50 +0100 Subject: [PATCH] remove double slashes in url because they are leading to 404 --- .../cot/restsdk/CloudOfThingsRestClient.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/telekom/m2m/cot/restsdk/CloudOfThingsRestClient.java b/src/main/java/com/telekom/m2m/cot/restsdk/CloudOfThingsRestClient.java index 4a3d3551..17b5d245 100644 --- a/src/main/java/com/telekom/m2m/cot/restsdk/CloudOfThingsRestClient.java +++ b/src/main/java/com/telekom/m2m/cot/restsdk/CloudOfThingsRestClient.java @@ -86,7 +86,7 @@ public String doRequestWithIdResponse(String json, String api, String contentTyp .addHeader("Authorization", "Basic " + encodedAuthString) .addHeader("Content-Type", contentType) .addHeader("Accept", accept) - .url(host + "/" + api) + .url(host + "/" + trimSlashes(api)) .post(body) .build(); response = client.newCall(request).execute(); @@ -132,7 +132,7 @@ public String doPostRequest(String json, String api, String contentType, String RequestBody body = RequestBody.create(MediaType.parse(contentType), json); Request.Builder requestBuilder = new Request.Builder() .addHeader("Authorization", "Basic " + encodedAuthString) - .url(host + "/" + api) + .url(host + "/" + trimSlashes(api)) .post(body); if (contentType != null) { @@ -178,7 +178,7 @@ public String doFormUpload(String file, String name, String api, String contentT Request request = new Request.Builder() .addHeader("Authorization", "Basic " + encodedAuthString) .addHeader("Content-Type", contentType) - .url(host + "/" + api) + .url(host + "/" + trimSlashes(api)) .post(body) .build(); @@ -221,7 +221,7 @@ public String doFormUpload(byte[][] files, String[] names, String api) { Request request = new Request.Builder() .addHeader("Authorization", "Basic " + encodedAuthString) .addHeader("Content-Type", "text/foo") - .url(host + "/" + api) + .url(host + "/" + trimSlashes(api)) .post(bodyBuilder.build()) .build(); @@ -272,7 +272,7 @@ public String doRealTimePollingRequest(String json, String api, String contentTy .addHeader("Authorization", "Basic " + encodedAuthString) .addHeader("Content-Type", contentType) .addHeader("Accept", contentType) - .url(host + "/" + api) + .url(host + "/" + trimSlashes(api)) .post(body) .build(); @@ -446,7 +446,7 @@ public String getResponse(String id, String api, String accept) { public byte[] getResponseInBytes(String id, String api, String accept){ Request.Builder requestBuilder = new Request.Builder() .addHeader("Authorization", "Basic " + encodedAuthString) - .url(host + "/" + removeTrailingSlash(api) + "/" + id); + .url(host + "/" + trimSlashes(api) + "/" + id); if (accept != null) { requestBuilder.addHeader("Accept", accept); @@ -478,7 +478,7 @@ public byte[] getResponseInBytes(String id, String api, String accept){ public String getResponse(String api) { Request request = new Request.Builder() .addHeader("Authorization", "Basic " + encodedAuthString) - .url(host + "/" + api) + .url(host + "/" + trimSlashes(api)) .build(); Response response = null; @@ -530,7 +530,7 @@ public String doPutRequest(String data, String path, String contentType, String Request.Builder requestBuilder = new Request.Builder() .addHeader("Authorization", "Basic " + encodedAuthString) .addHeader("Content-Type", contentType) - .url(host + "/" + path) + .url(host + "/" + trimSlashes(path)) .put(requestBody); if (accept != null) { @@ -567,7 +567,7 @@ public String doPutRequestWithIdResponseInBytes(byte[] data, String path, String Request.Builder requestBuilder = new Request.Builder() .addHeader("Authorization", "Basic " + encodedAuthString) .addHeader("Content-Type", contentType) - .url(host + "/" + path) + .url(host + "/" + trimSlashes(path)) .put(requestBody); Request request = requestBuilder.build(); @@ -609,7 +609,7 @@ public String doPutRequestWithIdResponse(String data, String path, String conten public void delete(String id, String api) { Request request = new Request.Builder() .addHeader("Authorization", "Basic " + encodedAuthString) - .url(host + "/" + removeTrailingSlash(api) + "/" + id) + .url(host + "/" + trimSlashes(api) + "/" + id) .delete() .build(); Response response = null; @@ -631,7 +631,7 @@ public void delete(String id, String api) { public void deleteBy(final String filter, final String api) { final Request request = new Request.Builder() .addHeader("Authorization", "Basic " + encodedAuthString) - .url(host + "/" + removeTrailingSlash(api) + "?" + filter) + .url(host + "/" + trimSlashes(api) + "?" + filter) .delete() .build(); Response response = null; @@ -700,9 +700,13 @@ private void closeResponseBodyIfResponseAndBodyNotNull(final Response response) } } - private String removeTrailingSlash(String path) { + private String trimSlashes(String path) { Objects.requireNonNull(path); + if(path.startsWith("/")) { + path = path.substring(1); + } + if(path.endsWith("/")) { path = path.substring(0, path.length()-1); }