Я пытаюсь интегрировать Alexa с Android приложением. Я могу войти в систему и получить токен от AVS, и когда я пытаюсь отправить запрос вызова OkHttp Multipart POST в AVS с аудиофайлом в теле запроса, я получаю код ответа 204. Может ли кто-нибудь помочь мне в решении этой проблемы.
Спасибо:)
public void uploadFile(File audio, String accessToken)
{
OkHttpClient client = new OkHttpClient();
try {
byte[] streamToSend = new byte[(int) audio.length()];
FileInputStream fis = new FileInputStream(audio);
fis.read(streamToSend);
fis.close();
final MultipartBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("metadata","metadata",
RequestBody.create(MediaType.parse("application/json; charset=utf-8"), generateSpeechMetadata()))
.addFormDataPart("audio", "audiorecordtest.pcm",
RequestBody.create(MediaType.parse("application/octet-stream"), streamToSend))
.build();
Request request = new Request.Builder()
.url("https://avs-alexa-eu.amazon.com/v20160207/events")
.addHeader("Authorization","Bearer "+accessToken)
.post(requestBody)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
call.cancel();
e.printStackTrace();
Log.e("STATUS", "Failed");
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
final String myResponse = response.body().string();
Log.e("STATUS CODE", String.valueOf(response.code()));
if (response.code() == HttpURLConnection.HTTP_NO_CONTENT){
Log.e("STATUS", " No Content");
}
else{
Log.e("STATUS Successfull!", response.body().toString());
}
}
});
}catch (Exception ex) {
ex.printStackTrace();
// Handle the error
}
}