Volly onErrorResponse trotz Erfolg

wer112

Top Contributor
Nach paar Monaten Pause, dachte ich entwickle weiter am App Store. Um sich zu registrieren, wird ja Perso(Vor & Rück) auf den Server geladen und anschließend die daten im späteren verfahren hinzugefügt.

Jetzt mache ich die Funktion für Unternehmen. Wo zusätzlich der Gewerbeschein mit geschickt wird.

Beim Privat geht es einwandfrei bisher.(Manchmal Timeout,..)

Wenn ich das Hochlade bei Unternehmen bekomme ich den onErrorResponse Auszug. Aber auf dem Server wurde es trotzdem erfolgreich hochgeladen.

Wie kann das sein, das es erfolgreich hochgeladen ist, aber ich die Fehlermeldung trotzdem bekomme?
Beim Privat geht es ja und ist das gleiche Prozess und gleiche Methode.

Das Upload Methode:

Java:
 private void MediaUpload() {

        zipUri = Environment.getExternalStorageDirectory() + "/Download/" + "E" + kundennummer + ".zip";

        RequestQueue queue = Volley.newRequestQueue(getActivity());
        String upload_url = "https://";
        VolleyMultipartRequest volleyMultipartRequest = new VolleyMultipartRequest(Request.Method.POST,upload_url,
                new Response.Listener<NetworkResponse>() {
                    @Override
                    public void onResponse(NetworkResponse response) {
                        aLoadingDialog.dismiss();
                        try {
                            JSONObject obj = new JSONObject(new String(response.data));
                            Log.e("Free Entwickler", "" + obj.getString("response"));
                            String Response = obj.getString("response");

                            if (Response.equals("Session fehler")){
                                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
                                View view = LayoutInflater.from(getActivity()).inflate(R.layout.layout_error_dialog, (ConstraintLayout)getActivity().findViewById(R.id.layoutDialogContainer));
                                builder.setView(view);
                                ((TextView) view.findViewById(R.id.textTitle)).setText("Session Fehler");
                                ((TextView) view.findViewById(R.id.textView_error)).setText("Leider gab es Probleme mit der Session.\n\nBitte melden Sie sich erneut an und probieren Sie es erneut.\n\nSonst kontaktiere den Support.\n\n" );
                                ((Button) view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                                ((ImageView) view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                                final AlertDialog alertDialog = builder.create();
                                alertDialog.setCancelable(false);

                                view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                                    @Override
                                    public void onClick(View v) {
                                        alertDialog.dismiss();

                                    }
                                });

                                if (alertDialog.getWindow() != null) {
                                    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                                }


                                alertDialog.show();

                            }else if(Response.equals("Datei ist leer.")){

                                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
                                View view = LayoutInflater.from(getActivity()).inflate(R.layout.layout_error_dialog, (ConstraintLayout) getActivity().findViewById(R.id.layoutDialogContainer));
                                builder.setView(view);
                                ((TextView) view.findViewById(R.id.textTitle)).setText("Datei Fehler");
                                ((TextView) view.findViewById(R.id.textView_error)).setText("Leider gab es Probleme mit der gesendete Datei.\n\n" );
                                ((Button) view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                                ((ImageView) view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                                final AlertDialog alertDialog = builder.create();
                                alertDialog.setCancelable(false);

                                view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                                    @Override
                                    public void onClick(View v) {
                                        alertDialog.dismiss();

                                    }
                                });

                                if (alertDialog.getWindow() != null) {
                                    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                                }


                                alertDialog.show();


                            }else if(Response.equals("nicht erfolgreich hochladen")){

                                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
                                View view = LayoutInflater.from(getActivity()).inflate(R.layout.layout_error_dialog, (ConstraintLayout) getActivity().findViewById(R.id.layoutDialogContainer));
                                builder.setView(view);
                                ((TextView) view.findViewById(R.id.textTitle)).setText("Hochladen");
                                ((TextView) view.findViewById(R.id.textView_error)).setText("Leider war das Hochladen nicht erfolgreich.\n\n" );
                                ((Button) view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                                ((ImageView) view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                                final AlertDialog alertDialog = builder.create();
                                alertDialog.setCancelable(false);

                                view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                                    @Override
                                    public void onClick(View v) {
                                        alertDialog.dismiss();

                                    }
                                });

                                if (alertDialog.getWindow() != null) {
                                    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                                }


                                alertDialog.show();

                            }else if(Response.equals("falsches Format")){


                                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
                                View view = LayoutInflater.from(getActivity()).inflate(R.layout.layout_error_dialog, (ConstraintLayout) getActivity().findViewById(R.id.layoutDialogContainer));
                                builder.setView(view);
                                ((TextView) view.findViewById(R.id.textTitle)).setText("Format");
                                ((TextView) view.findViewById(R.id.textView_error)).setText("Leider ist das Format der Datei nicht die Richtige.\n\n" );
                                ((Button) view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                                ((ImageView) view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                                final AlertDialog alertDialog = builder.create();
                                alertDialog.setCancelable(false);

                                view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                                    @Override
                                    public void onClick(View v) {
                                        alertDialog.dismiss();

                                    }
                                });

                                if (alertDialog.getWindow() != null) {
                                    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                                }


                                alertDialog.show();


                            }else if(Response.equals("nicht angemeldet.")){

                                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
                                View view = LayoutInflater.from(getActivity()).inflate(R.layout.layout_error_dialog, (ConstraintLayout) getActivity().findViewById(R.id.layoutDialogContainer));
                                builder.setView(view);
                                ((TextView) view.findViewById(R.id.textTitle)).setText("Anmelgung");
                                ((TextView) view.findViewById(R.id.textView_error)).setText("Laut System sind sie nicht angemeldet\n\n" );
                                ((Button) view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                                ((ImageView) view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                                final AlertDialog alertDialog = builder.create();
                                alertDialog.setCancelable(false);

                                view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                                    @Override
                                    public void onClick(View v) {
                                        alertDialog.dismiss();

                                    }
                                });

                                if (alertDialog.getWindow() != null) {
                                    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                                }


                                alertDialog.show();


                            }else if(Response.equals("erfolgreich hochgeladen")){

                                Toast.makeText(getActivity(), "Erfolgreich Hochgeladen!", Toast.LENGTH_SHORT).show();

                                if(registrationModus.equals("privat")) {

                                    RegisterPrivat();
                                }else if (registrationModus.equals("unternehmen")){


                                }else if (registrationModus.equals("dummy")){
                                    Toast.makeText(getActivity(), "Dummy Modus", Toast.LENGTH_SHORT).show();
                                }

                            }

                        } catch (JSONException e) {
                            Toast.makeText(getActivity(), "Upload JSONException", Toast.LENGTH_SHORT).show();
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        aLoadingDialog.dismiss();
                        Toast.makeText(getActivity(), "Bitte laden Sie es erneut hoch und löschen Sie vor die Datei.", Toast.LENGTH_LONG).show();
                        Log.e("Free Entwickler","Volly Error: " +error);
                    }
                }) {


            @Override
            protected Map<String, DataPart> getByteData() {
                Map<String, DataPart> params = new HashMap<>();

                byte[] zipArray = getArrayFromZip(zipUri);
                params.put("zip", new DataPart("E" + kundennummer + ".zip", zipArray, "application/zip"));

                return params;
            }
        };

        queue.add(volleyMultipartRequest);

    }

Ich danke euch, schon im Vorfeld.
 

Robert Zenz

Top Contributor
Das kommt darauf an was als Fehler angesehen wird. Du muesstest dir eben den genauen Fehler und die am bestne noch die HTTP-Antwort ausgeben lassen um zu sehen wieso Volley dies als Fehler ansieht.
 

Robert Zenz

Top Contributor
Am besten alle Details aus VolleyError in das Log schreiben, inklusive der gesamten NetworkResponse, als Toast wird das schwierig werden.
 

Oben