java - 如何在 Android Java 中发送请求并获取 Alexa 语音服务的响应?
问题描述
我正在尝试开发使用 Alexa 语音服务的 android 应用程序,目前我可以获得 AVS 的访问令牌,还可以创建用于录制音频的媒体播放器,并将其转换为字节数组。问题是当向 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());
}
}
});
}
解决方案
推荐阅读
- c# - 具有可为空属性的多个条件的 EF Core 联接表
- javascript - 如何使用自己的证书为 webpack-dev-server 启用 https?
- python-3.x - TypeError:“位置”类型的对象不是 JSON 可序列化的
- python - 按元素过滤列表数据帧
- ios - 如何将代码从 swift 3 迁移到 swift 4 或更高版本?
- css - font-face css自定义字体的问题
- android - 将java类连接到包含的xml android
- python - GET 请求 - 计数
- json - 修复 JSON::ParserError: 416: '{' 处的意外令牌而不使用 EVAL
- java - 没有可用的“org.springframework.data.rest.core.util.Java8PluginRegistry”类型的合格bean