public static void subscribe( PlexClient client, int subscriptionPort, int commandId, String uuid, String deviceName, final PlexHttpResponseHandler responseHandler) { String url = String.format("http://%s:%s", client.address, client.port); Logger.d("Subscribing at url %s", url); PlexHttpService service = getService(url, true); Call<PlexResponse> call = service.subscribe(uuid, deviceName, subscriptionPort, commandId); call.enqueue( new Callback<PlexResponse>() { @Override public void onResponse(Response<PlexResponse> response) { Logger.d("Subscribe code: %d", response.code()); if (responseHandler != null) { if (response.code() == 200) responseHandler.onSuccess(response.body()); else responseHandler.onFailure(new Throwable()); } } @Override public void onFailure(Throwable t) { Logger.d("subscribe onFailure:"); PlexResponse response = new PlexResponse(); response.status = "ok"; if (responseHandler != null) responseHandler.onSuccess(response); t.printStackTrace(); if (responseHandler != null) responseHandler.onFailure(t); } }); }