API работает в почтальоне, но не в приложении для Android при загрузке аудио файла - PullRequest
0 голосов
/ 27 сентября 2019

** В приложении Android не работает API.В приложении, когда я нажимаю на кнопку вызова в это время вызов будет записан и отправлен на сервер с помощью дооснащения.но я проверяю, работает ли почтальон API полностью.Что я должен делать?**

public class ApiClient {

public static final String BASE_URL = "BASE URL";

private static Retrofit retrofit = null;


public static Retrofit getClient() {

    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
    OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();

    Gson gson = new GsonBuilder()
            .setLenient()
            .create();

    if (retrofit==null) {
        retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(ScalarsConverterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .addConverterFactory(GsonConverterFactory.create(gson))
                .build();
    }
    return retrofit;
}

}

** Интерфейс **

 //upload recorder file
@Multipart
@Headers({"Content-Type:application/json",
        "ENCTYPE:multipart/form-data",
        "cache-control: no-cache"
})
@POST ("UploadToServer")
Call<UploadDataAudio> uploadRecordingFile(@Part MultipartBody.Part AudioComment);

Вызов API из MainActivity

public void updateRecordingFileName(String idoc_id, String filename) {
    // Showing progress dialog
        Log.e("Audiosavefilename ->",""+filename);

    File file=new File(filename);
    Log.e("Audio path",""+file.getAbsolutePath());
    Log.e("audio size",""+file.getAbsoluteFile().lastModified());


    String mimeType= URLConnection.guessContentTypeFromName(file.getName());



    RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data") , file);
    MultipartBody.Part fileToUpload = MultipartBody.Part.createFormData("uploaded_file" , file.toString() , requestBody);


    final ProgressDialog pDialog = new ProgressDialog(MainActivity.this);
    pDialog.setMessage("Please wait...");
    pDialog.setCancelable(false);
    pDialog.show();

    APIInterface apiService = ApiClient.getClient().create(APIInterface.class);
    Call<UploadDataAudio> call = apiService.uploadRecordingFile(fileToUpload);
   Log.e("Audio url",""+ call.request().url().toString());
    call.enqueue(new Callback<UploadDataAudio>() {
        @Override
        public void onResponse(Call<UploadDataAudio> call, Response<UploadDataAudio> response) {
            Log.i("RETROFIT", "onResponse Called" + response.code());
            UploadDataAudio dataaudio=response.body();
            Log.e("RESPONSE",""+dataaudio.getResponseData().toString());
            Log.i("response",new Gson().toJson(dataaudio));
            if (pDialog.isShowing()) {
                pDialog.dismiss();
            }

        }

        @Override
        public void onFailure(Call<UploadDataAudio> call, Throwable t) {
            // Log error here since request failed
            if (pDialog.isShowing()) {
                pDialog.dismiss();
            }
        }
    });

** Почтальон завершил работу здесь piture ** enter image description here

** Когда я загружаю аудиофайл в это время. Это сообщение показывается в режиме отладки **

java.net.ProtocolException: ожидается 3286 байт, но получено 3699

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