Сбой запроса Android Volley при звонке в API wit.ai - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь использовать службу REST API распознавания речи от wit.ai

Я использовал Volley для отправки запроса POST на URL https://api.wit.ai/speech

Thisэто то, что я сейчас сделал:

void makeApiCall(){
    StringRequest request =  new StringRequest(Request.Method.POST, "https://api.wit.ai/speech", new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.d("wit_response",response);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("wit_response",error.toString());
        }
    }){
        @Override
        protected Map<String,String> getParams() throws AuthFailureError{
            Map<String,String> params = new HashMap<>();
            params.put("Authorization","Bearer XXXXXX"); //hidden my token
            params.put("Content-Type","audio/mpeg3");
            return params;
        }
        @Override
        public byte[] getBody() throws AuthFailureError {

            return sendToByte();
        }
    };



    RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
    queue.add(request);
}

Я получаю ошибку com.android.volley.ClientError в ключе журнала wit_response внутри onErrorResponse() метод

Я не пропустил тип содержимого и авторизациюзаголовок, и моя функция sendToByte успешно возвращает mp3-файл, преобразованный в байтовый массив.

В чем проблема?

1 Ответ

0 голосов
/ 26 января 2019

Мне пришлось использовать эту ссылку https://gist.github.com/anggadarkprince/a7c536da091f4b26bb4abf2f92926594

И используйте класс MultiPartRequest, как описано в этом разделе, для загрузки моего файла.

Пожалуйста, прокомментируйте здесь, если вам нужна помощь (для всех будущих людей)

...