Отправить файлы в качестве параметра в вызове API в Android

Я обычно использую библиотеку volley для веб-сервисов, и теперь я хочу отправить файл (например, изображение, видео и т. д.) в качестве параметра, точно так же, как имя, страна, возраст или другие параметры. Какой из них является наиболее подходящим и простым способом достижения этой функциональности? Я пробовал с «android-async-http», но я получаю предупреждение об устаревании в заголовке в «public void onSuccess (int statusCode, заголовки Header [], ответ JSONArray)», и если я использую «useLibrary» org.apache.http. legacy'", затем ошибка переходит в "super.onSuccess(statusCode, headers, response);" линия. Ниже приведен код, который я использую. Любая помощь будет высоко оценена.

Код:

private void sendRegisterData(String path) {

    String baseUrl = AppGlobal.BaseURL+"register";
    final ProgressDialog pd = new ProgressDialog(this);
    pd.setCancelable(false);
    pd.show();
    RequestParams params = new RequestParams();
    params.put("name", name_text);
    params.put("country", country_text);
    params.put("userType", userType_text);
    params.put("email", email_text);
    params.put("password", password_text);
    try {
        File file = bmpToFile(profileImage_bmp); //   Convert bmp to File to pass as parameter
        params.put("avatar", file);

    } catch (FileNotFoundException e1) {
        Toast.makeText(this,
                "Problem updating profile! Try later.", Toast.LENGTH_SHORT)
                .show();
        // new SnackBar(this,
        // "Problem updating profile! try later.").show();
        this.finish();
    } catch (IOException e) {
        e.printStackTrace();
    }

    AsyncHttpClient client = new AsyncHttpClient();

    client.post(this, baseUrl, params, new JsonHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers,
                              JSONArray response) {
            // TODO Auto-generated method stub
            super.onSuccess(statusCode, headers, response);

        }

        @Override
        public void onProgress(long bytesWritten, long totalSize) {
            // TODO Auto-generated method stub
            super.onProgress(bytesWritten, totalSize);
            int progressPercentage = (int) ((int) 100 * bytesWritten / totalSize);

        }

        @Override
        public void onSuccess(int statusCode, Header[] headers,
                              JSONObject response) {
            // TODO Auto-generated method stub
            super.onSuccess(statusCode, headers, response);
            Log.e("RESULT FRIEND LIST JO", response.toString() + "");

        }

        @Override
        public void onSuccess(int statusCode, Header[] headers,
                              String responseString) {
            // TODO Auto-generated method stub
            super.onSuccess(statusCode, headers, responseString);
            Log.e("RESULT FRIEND LIST", responseString.toString() + "");

        }

        @Override
        public void onFailure(int statusCode, Header[] headers,
                              Throwable throwable, JSONObject errorResponse) {
            // TODO Auto-generated method stub
            super.onFailure(statusCode, headers, throwable, errorResponse);

            // Log.e("Upload Exeption", errorResponse.toString());
        }

        @Override
        public void onFailure(int statusCode, Header[] headers,
                              String responseString, Throwable throwable) {
            // TODO Auto-generated method stub
            super.onFailure(statusCode, headers, responseString, throwable);

        }

        @Override
        public void onFinish() {
            // TODO Auto-generated method stub
            super.onFinish();
            pd.dismiss();
        }
    });

person Usman Ishrat    schedule 13.01.2016    source источник