Как отправить запрос и получить ответ на Alexa Voice Service в Android Java? - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь разработать приложение для Android, которое использует Alexa Voice Service. В настоящее время я могу получить токен доступа для AVS, а также создать медиаплеер для записи звука и преобразовать его в Byte Array. Проблема в том, что при отправке запроса в Alexa я получаю код 204. Как это побороть?

 public void sendAudio() {
        final MultipartBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("metadata","metadata", RequestBody.create(MEDIA_JSON, generateSpeechMetadata()))
                .addFormDataPart("audio", "audiorecordtest.pcm",
                        RequestBody.create(MEDIA_TYPE_AUDIO, streamToSend))
                .build();

        Request request = new Request.Builder()
                .addHeader("Authorization","Bearer "+accestoken)
                .post(requestBody)
                .url("https://alexa.na.gateway.devices.a2z.com/v20160207/events")
                .build();

        System.out.println("REQUEST BODY :"+ request.body().toString());




        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                call.cancel();
            }

            @Override
            public void onResponse(Call call, final Response response) throws IOException {

                final String myResponse = response.body().string();
                System.out.println("STATUS CODE"+ response.code());
                if (response.code() == HttpURLConnection.HTTP_NO_CONTENT){
                    System.out.println("Successfull! No Content");

                }
                else{
                    System.out.println("Successfull! have Content" +response.body().toString());

                }


            }
        });
    }
...