diff --git a/src/main/java/com/ibm/watson/developer_cloud/service/WatsonService.java b/src/main/java/com/ibm/watson/developer_cloud/service/WatsonService.java index 11508b1228c..3e62bb1cd6c 100644 --- a/src/main/java/com/ibm/watson/developer_cloud/service/WatsonService.java +++ b/src/main/java/com/ibm/watson/developer_cloud/service/WatsonService.java @@ -78,7 +78,7 @@ public abstract class WatsonService { private String endPoint; private final String name; protected Headers defaultHeaders = null; - private boolean skipAuthentication = false; + protected boolean skipAuthentication = false; /** The Constant MESSAGE_CODE. */ protected static final String MESSAGE_CODE = "code"; diff --git a/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/SpeechToText.java b/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/SpeechToText.java index 84e5d2661cd..46211cd1e0b 100644 --- a/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/SpeechToText.java +++ b/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/SpeechToText.java @@ -346,21 +346,25 @@ public void recognizeUsingWebSocket(final InputStream audio, final RecognizeOpti Validator.notNull(options, "options cannot be null"); Validator.notNull(options.contentType(), "options.contentType cannot be null"); Validator.notNull(callback, "callback cannot be null"); - - - getToken().enqueue(new ServiceCallback() { - @Override - public void onFailure(Exception e) { - callback.onError(e); - } - - @Override - public void onResponse(String token) { - String url = getEndPoint().replaceFirst("(https|http)", "wss"); - WebSocketManager wsManager = new WebSocketManager(url + PATH_RECOGNIZE, configureHttpClient(), defaultHeaders, token); - wsManager.recognize(audio, options, callback); - } - }); - + + final String url = getEndPoint().replaceFirst("(https|http)", "wss"); + + if (skipAuthentication) { + WebSocketManager wsManager = new WebSocketManager(url + PATH_RECOGNIZE, configureHttpClient(), defaultHeaders, null); + wsManager.recognize(audio, options, callback); + } else { + getToken().enqueue(new ServiceCallback() { + @Override + public void onFailure(Exception e) { + callback.onError(e); + } + + @Override + public void onResponse(String token) { + WebSocketManager wsManager = new WebSocketManager(url + PATH_RECOGNIZE, configureHttpClient(), defaultHeaders, token); + wsManager.recognize(audio, options, callback); + } + }); + } } } diff --git a/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/websocket/WebSocketManager.java b/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/websocket/WebSocketManager.java index 1a73f1b9b09..e23a84f43d8 100644 --- a/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/websocket/WebSocketManager.java +++ b/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/websocket/WebSocketManager.java @@ -272,9 +272,12 @@ public WebSocketManager(String url, OkHttpClient client, Headers defaultHeaders, private WebSocketCall createConnection(RecognizeOptions options) { String speechModel = options.model() == null ? "" : "?model=" + options.model(); Builder builder = new Request.Builder() - .url(url + speechModel) - .addHeader(HttpHeaders.X_WATSON_AUTHORIZATION_TOKEN, token); + .url(url + speechModel); + if (token != null) { + builder.addHeader(HttpHeaders.X_WATSON_AUTHORIZATION_TOKEN, token); + } + if (defaultHeaders != null) { for (String key : defaultHeaders.names()) { builder.header(key, defaultHeaders.get(key));