google / volley

https://google.github.io/volley
Apache License 2.0
3.38k stars 754 forks source link

Volley Error Send null #189

Closed BraveEvidence closed 6 years ago

BraveEvidence commented 6 years ago

public class MainActivity extends AppCompatActivity {

InputStreamVolleyRequest request;
private TextView textView;
private Button button;

// private RequestQueue requestQueue; //WifiManager wifiManager; long FILE_SIZE ; long startTime; long endTime; private long takenTime;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView = findViewById(R.id.tv);
    button = findViewById(R.id.button);
    //";

    String mUrl="https://firebasestorage.googleapis.com/v0/b/squawker-51b2e.appspot.com/o/d_5ad47410bbe10131c500004603a0co?alt=media&token=c4e5da89-3159-480c-a73f-5879c2e15499";

// wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startTime = System.currentTimeMillis(); textView.setText("");

            MySingleton.getMySingleton(getApplicationContext()).addToRequestQueue(request);

// requestQueue.add(request); button.setEnabled(false);

        }
    });

// requestQueue = Volley.newRequestQueue(getApplicationContext(), new HurlStack()); request = new InputStreamVolleyRequest(Request.Method.GET, mUrl, new Response.Listener<byte[]>() { @Override public void onResponse(byte[] response) { if(response!=null){ FileOutputStream outputStream;

                String name = "justdownloaded.mp3";

                try {

                    outputStream = openFileOutput(name, Context.MODE_PRIVATE);

                    outputStream.write(response);

                    outputStream.close();
                    Toast.makeText(MainActivity.this, "Download complete.", Toast.LENGTH_LONG).show();
                    textView.setText("Complete");

                    endTime = System.currentTimeMillis();

                    File file1 = new File(getApplicationContext().getFilesDir().getAbsolutePath(),name);
                    Log.i("TAG", "onResponse: "+MD5.calculateMD5(file1));
                    boolean b =MD5.checkMD5(request.responseHeaderETag,file1);
                    Log.i("TAG", "onResponse: "+b);
                    FILE_SIZE = file1.length();
                    int fileSize = (int) (FILE_SIZE / 1024);

                    takenTime = endTime - startTime;
                    double s = (double) takenTime / 1000;
                    double speed = fileSize / s;
                    Log.i("TAG", "onResponse: "+new DecimalFormat("##.##").format(speed)
                            + "kb/second"+fileSize);

                } catch (Exception e) {
                    e.printStackTrace();
                }
                button.setEnabled(true);

            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

            if(error.networkResponse == null){
                if(error.getClass().equals(TimeoutError.class)){
                    Toast.makeText(getApplicationContext(),"Time Out Error",Toast.LENGTH_LONG).show();
                }
            }
            endTime = System.currentTimeMillis();
            NetworkResponse networkResponse = error.networkResponse;
            if (networkResponse != null && networkResponse.data != null) {
                String jsonError = new String(networkResponse.data);
                // Print Error!
                Log.i("TAG", "onErrorResponse: q"+jsonError);
            }

            Log.i("ERROR", "onErrorResponse:122 "+request.getStatusCode());

// Toast.makeText(MainActivity.this, "Error", Toast.LENGTH_SHORT).show(); // Log.i("TAG", "onErrorResponse: "+error.networkResponse.data.toString()); Log.i("TAG", "onErrorResponse2: "+error.getLocalizedMessage()); Log.i("TAG", "onErrorResponse3: "+error.getMessage());

            Log.i("TAG", "onErrorResponse4: "+error.getNetworkTimeMs());
            Log.i("TAG", "onErrorRespons5: "+error.getCause());
            Log.i("TAG", "onErrorRespons6: "+error.getStackTrace().toString());

// if(error.getMessage() == null){ // MySingleton.getMySingleton(getApplicationContext()).addToRequestQueue(request); // } takenTime = endTime - startTime; button.setEnabled(true); textView.setText("Error"); double s = (double) takenTime / 1000; double speed = FILE_SIZE / s; Log.i("TAG", "onResponse: "+new DecimalFormat("##.##").format(speed) + "kb/second");

        }
    });

    request.setRetryPolicy(new DefaultRetryPolicy(2000,
            2,
            2));
}

}

Whenever i choose GSM as network type in my emulator, i get null error. For Full Network type in emulator, file get downloadede successfully.

jpd236 commented 6 years ago

I don't know what "null error" means - do you mean the object passed to onErrorResponse is null? If so, that would be a bug. If it's just that networkResponse is null, then that could certainly be expected if no response came back from the server.

This looks more like a general troubleshooting question rather than a bugreport. I would recommend StackOverflow or our users group at volley-users@googlegroups.com for such questions - this is a bug tracker for issues with the library.

(If you do suspect a bug in Volley, can you please either upload your code as an attachment or make sure it's formatted correctly? It's hard to follow when pasted directly inline as this. The text box supports markdown styling).