Каждый раз, когда вы получаете исключение SocketTimeOut при загрузке изображения - PullRequest
0 голосов
/ 30 апреля 2018

Я добавил в свое приложение экран, на котором пользователь загружает изображение из галереи или камеры с некоторыми деталями и отправляет его на сервер, но проблема заключается в том, что когда я нажимаю кнопку «Отправить» каждый раз, когда я получаю «SocketTimeOutException», но почта отправляется на сервер. Пожалуйста, помогите.

Я мог загрузить форму раньше, но не сейчас. В чем проблема, которую я не могу получить.

Код:

 private void execMultipartPost() throws Exception {

    RequestBody requestBody;






    if (filePath != null) {
        File file = new File(filePath);
        String contentType = file.toURL().openConnection().getContentType();
        fileBody = RequestBody.create(MediaType.parse(contentType), file);
        filename = "file_" + System.currentTimeMillis() / 1000L;


        Log.d("TAG", "execMultipartPost: " + filePath);


        requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("destination_type", selectedDescription)
                .addFormDataPart("admin_id", admin_id)
                .addFormDataPart("date", txtDate)
                .addFormDataPart("time", txtTime)
                .addFormDataPart("description", txtDescription)
                .addFormDataPart("image", filename + ".jpg", fileBody)
                .addFormDataPart("user_id", user_id)
                .addFormDataPart("api_token", api_token)

                .build();

    } else {


        requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("destination_type", selectedDescription)
                .addFormDataPart("admin_id", admin_id)
                .addFormDataPart("date", selectdate.getText().toString())
                .addFormDataPart("time", selecttimehr.getText().toString())
                .addFormDataPart("description", description.getText().toString())
                .addFormDataPart("image", "null")
                .addFormDataPart("user_id", user_id)
                .addFormDataPart("api_token", api_token)

                .build();


    }

    okhttp3.Request request = new okhttp3.Request.Builder()
            .url(Constansts.LETS_MELDEN)
            .post(requestBody)
            .build();


    OkHttpClient okHttpClient = new OkHttpClient();


    okHttpClient.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, final IOException e) {
            getActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    progressDialog.dismiss();
                    Toast.makeText(getActivity(), getResources().getString(R.string.txt_error_occured), Toast.LENGTH_SHORT).show();

                    e.printStackTrace();
                }
            });
        }


        @Override
        public void onResponse(Call call, final okhttp3.Response response) throws IOException {
            getActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    try {

                        ResponseBody responseBody = response.body();
                        String content = responseBody.string();
                        Log.e("TAG", "pic upload " + content);

                        JSONObject jsonObject = new JSONObject(content);

                        if (jsonObject.has("success")) {
                            Toast.makeText(getActivity(), "mail sent successfully.", Toast.LENGTH_SHORT).show();
                        } else {
                            Toast.makeText(getActivity(), jsonObject.getString("error"), Toast.LENGTH_SHORT).show();
                        }

                        description.setText(" ");
                        txt_picture_preview.setImageResource(android.R.color.transparent);
                        selecttypedec.setSelection(0);

                        progressDialog.dismiss();


                        //   Log.d("TAG", "response of image: " + response.body().string());

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    });
}
...