private void createEnvironment( String name, int floors, Polygon outline, final List<ExtSensor> sensors) { // create GPS outline String String gpsOutline = ""; for (int i = 0; i < outline.getVertexCount(); i++) { LatLng vertex = outline.getVertex(i); gpsOutline += vertex.toUrlValue() + ";"; } gpsOutline = gpsOutline.substring(0, gpsOutline.length() - 1); // create GPS position String String position = outline.getBounds().getCenter().toUrlValue(); // prepare request properties final Method method = RequestBuilder.POST; final UrlBuilder urlBuilder = new UrlBuilder() .setProtocol(CommonSenseClient.Urls.PROTOCOL) .setHost(CommonSenseClient.Urls.HOST); urlBuilder.setPath(Urls.PATH_ENVIRONMENTS + ".json"); final String url = urlBuilder.buildString(); final String sessionId = SessionManager.getSessionId(); String body = "{\"environment\":{"; body += "\"" + ExtEnvironment.NAME + "\":\"" + name + "\","; body += "\"" + ExtEnvironment.FLOORS + "\":" + floors + ","; body += "\"" + ExtEnvironment.OUTLINE + "\":\"" + gpsOutline + "\","; body += "\"" + ExtEnvironment.POSITION + "\":\"" + position + "\"}"; body += "}"; // prepare request callback RequestCallback reqCallback = new RequestCallback() { @Override public void onError(Request request, Throwable exception) { LOG.warning("POST environments onError callback: " + exception.getMessage()); onCreateEnvironmentFailure(); } @Override public void onResponseReceived(Request request, Response response) { LOG.finest("POST environments response received: " + response.getStatusText()); int statusCode = response.getStatusCode(); if (Response.SC_CREATED == statusCode) { onCreateEnvironmentSuccess(response.getText(), sensors); } else { LOG.warning("POST environments returned incorrect status: " + statusCode); onCreateEnvironmentFailure(); } } }; // send request try { RequestBuilder builder = new RequestBuilder(method, url); builder.setHeader("X-SESSION_ID", sessionId); builder.setHeader("Content-Type", "application/json"); builder.sendRequest(body, reqCallback); } catch (Exception e) { LOG.warning("POST environments request threw exception: " + e.getMessage()); reqCallback.onError(null, e); } }