2016-09-08 2 views
2

발리 StringRequest을 사용하여 내 서버에 쿼리를 게시하면 약 20 %의 경우 요청이 성공했지만 onResponse 대신 onErrorResponse이 호출됩니다. 내가 게시물에 의해 생성 된 200 메시지와 데이터가 참조 Volley POST가 요청 성공시 오류를 throw합니다.

E/App: [MainActivity] failed to post 
E/App: no network response 

하지만 내 서버 로그에

: 내가 보는 시간

StringRequest stringRequest = new StringRequest(Request.Method.POST, url, 
    new Response.Listener<String>() { 
    @Override 
    public void onResponse(String response) { 
     Log.d("App", "[MainActivity] post successful"); 

     // run very important routine only when post is successful 
    } 
    }, new Response.ErrorListener() { 
    @Override 
    public void onErrorResponse(VolleyError error) { 
     Log.e("App", "[MainActivity] failed to post"); 

     if (error == null) { 
     Log.e("App", "no error"); 
     } 
     else if (error.networkResponse != null) { 
     Log.e("App", String.valueOf(error.networkResponse.statusCode)); 
     if(error.networkResponse.data != null) { 
      try { 
      Log.e("App", new String(error.networkResponse.data, "UTF-8")); 
      } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
      } 
     } 
     } 
     else { 
     Log.e("App", "no network response"); 
     } 
    } 
}); 

requestQueue.add(stringRequest); 

20 % : 여기

내 요청 코드 내 데이터베이스에.

성공적인 게시물에 Volley가 오류를 던지는 이유는 무엇입니까?

UPDATE

Log.e("App", "error message: " + error.getMessage()); 

지문 : E/App: error message: null

답변

1

오류 메시지가 발리 무엇을 반환? 확인 : volleyError.getMessage().

+0

'null'. 'getLocalizedMessage'와 동일합니다 – Cbas

+0

@Cbas [Charles] (https://www.charlesproxy.com/)와 같은 도구를 사용하여 서버의 응답을 모니터링 했습니까? 발리가 서버에서 가져온 것을 확인하십시오. – AssIstne

관련 문제