** В приложении 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 **
** Когда я загружаю аудиофайл в это время. Это сообщение показывается в режиме отладки **
java.net.ProtocolException: ожидается 3286 байт, но получено 3699