java - 如何使用 Azure 认知系统?
问题描述
我正在尝试将我的 Android 应用程序连接到 Azure 语音识别认知系统。
我使用了很多方法,但每次我进入null
“RUN”。
第一次,我使用下面的代码。
第二次,我从 Github 下载了库,但得到了相同的输出。
package com.example.api;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.net.URI;
public class MainActivity extends AppCompatActivity {
Button bb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bb=(Button)findViewById(R.id.bb);
bb.setOnClickListener(
new View.OnClickListener()
{
@Override
public void onClick(View v) {
HttpClient httpclient = HttpClients.createDefault();
try
{
URIBuilder builder = new URIBuilder("https://westus.api.cognitive.microsoft.com/spid/v1.0/identificationProfiles");
/*AsyncHttpClient client = new AsyncHttpClient();
client.post()
"https://westus.api.cognitive.microsoft.com/spid/v1.0/identificationProfiles",
new AsyncHttpResponseHandler() {}*/
URI uri = builder.build();
HttpPost request = new HttpPost(uri);
request.setHeader("Content-Type", "application/json");
request.setHeader("Ocp-Apim-Subscription-Key", getString(R.string.record));
// Request body
StringEntity reqEntity = new StringEntity(getString(R.string.loc));
request.setEntity(reqEntity);
HttpResponse response = httpclient.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null)
{
Log.i("",EntityUtils.toString(entity));
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
});
}
}
清单:
<uses-permission
android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我期望输出响应200
或500
;但是,实际输出是:
I/System.out:空
解决方案
EntityUtils.toString(entity)
返回entity.getContent()
-- 即使entity
不是,它也可能为空/空。
推荐阅读
- r - 如何将表格的输出转换为值?R
- javascript - 想要在输入字段中自动完成但没有得到它
- python - 在 Python 中以可调用的 2D 格式保存 DataFrame 列表
- amazon-web-services - AWS SDK 版本升级抛出:ENDPOINT_OVERRIDDEN: java.lang.NoSuchFieldError for SSM
- drupal - 带有 DDEV 的 Drupal 控制台
- c++ - 没有任何已加载函数“Getline”的实例与参数列表匹配
- javascript - 如何将渲染的 DOM 元素保存为 pdf
- postgresql - 为什么这些查询计划如此不同?
- python - 克隆 Django 项目现在意味着找不到我的 CSS 文件
- sql-server - SQL Server Always-on 的 Pacemaker 配置