Как использовать Azure Cognitive System? - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь подключить свое приложение Android к Azure Voice Identification Cognitive System.

Я использовал много способов, но каждый раз, когда я получаю 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: null

1 Ответ

0 голосов
/ 15 мая 2019

EntityUtils.toString(entity) возвращает entity.getContent() - который может быть нулевым / пустым, даже если entity - нет.

Сначала проверьте ответ от response.getStatusLine().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...