2014-11-25 65 views
1

我正在开发一个在php中使用web服务的android应用程序。 一切工作到现在为止。 为了交流android和php,我使用了抽象库,并且一切正常,但是这个。 我不知道这是最大数量的参数还是什么。 任何事情都是真的, 我测试了一些东西,当我发送一半参数“工作”时,它返回错误500,但至少它发送了一些东西。 当我尝试发送所有参数时,出现这个奇怪的错误。Android凌空奇怪的错误

这里是我的代码,并且错误:

public void inserePagamento(final Context ctx, DocTed docTed, 
     final ProgressDialog ringProgressDialog) { 

    String url = "http://192.168.1.168/declabank/ws/public/transacaoDocTed"; 
    Encriptador cesar = Encriptador.getInstance(); 
    HashMap<String, String> params = new HashMap<String, String>(); 
    params.put("agencia", usuario.getAgencia()); 
    params.put("conta", usuario.getConta()); 
    params.put("cripto",cesar.encriptar(cesar.getChave(), usuario.getNome())); 

    params.put("docFavorecidoNome", docTed.getNomeFav()); 
    params.put("docFavorecidoCompensacao", docTed.getCodComp()); 
    params.put("docFavorecidoBanco", docTed.getCodBanco()); 
    params.put("docFavorecidoAgencia", docTed.getnAgencia()); 
    params.put("docFavorecidoConta", docTed.getnConta()); 
    params.put("docFavorecidoCPFCNPJ", docTed.getCpfCnpj()); 
    params.put("docFavorecidoTipo", docTed.getDocFTipo()); 
    params.put("docTed", "" + docTed.getDocTed()); 
    params.put("docFinalidadeTransacao", docTed.getFinalidadeCod()); 
    params.put("docTitularidade", docTed.getTipoDoc()); 
    params.put("docValor", docTed.getValor()); 
    params.put("docData", docTed.getData()); 
    params.put("docRemetenteNome", docTed.getNomeRemetente()); 
    params.put("docRemetenteCPFCNPJ", docTed.getCpfCnpjRemetente()); 
    params.put("docRemetenteConta", docTed.getContaRemetente()); 
    params.put("CXC_COD_CX", docTed.getCodCx()); 
    params.put("docOrigem", docTed.getOrigem()); 
    params.put("docStatus", "" + docTed.getStatus()); 
    params.put("docComprovante", docTed.getComprovante()); 
    params.put("docTransferirEm", docTed.getTransferirEm()); 
    params.put("docAgendado", "" + docTed.getAgendado()); 

    RequestQueue rq = Volley.newRequestQueue(ctx); 

    DeclaJSONArrayRequest djson = new DeclaJSONArrayRequest(Method.POST, 
      url, params, new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray responseArray) { 
        try { 
         JSONObject response = responseArray 
           .getJSONObject(0); 
         try { 
          Log.e("DocTed", "DocTed gravado"); 
          Log.e("DocTed", "DocTed gravado"); 
          Log.e("DocTed", "DocTed gravado"); 
          Log.e("DocTed", "DocTed gravado"); 
          Log.e("DocTed", "DocTed gravado"); 
          String erro = response.getString("erro"); 
          ringProgressDialog.dismiss(); 
          Toast.makeText(ctx, erro, Toast.LENGTH_LONG) 
            .show(); 

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

         } 
        } catch (JSONException e) { 

         e.printStackTrace(); 
        } 

       } 
      }, new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        if (error != null) { 
         Toast.makeText(ctx, "Erro: ", Toast.LENGTH_LONG) 
           .show(); 
         Log.e("Erro", "" + error.getMessage()); 

        } else { 
         Toast.makeText(ctx, "Erro: " + error.getMessage(), 
           Toast.LENGTH_LONG).show(); 
         Log.e("Erro", "Treta da Grossa"); 

        } 

       } 
      }); 
    djson.setTag("TagPagamento"); 
    djson.setRetryPolicy((RetryPolicy) new DefaultRetryPolicy(15000, 
      DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
      DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
    rq.add(djson); 

} 

错误:

11-25 11:46:17.556: E/Volley(4874): [404] NetworkDispatcher.run: Unhandled exception  java.lang.NullPointerException 
    11-25 11:46:17.556: E/Volley(4874): java.lang.NullPointerException 
    11-25 11:46:17.556: E/Volley(4874):  at libcore.net.UriCodec.encode(UriCodec.java:132) 
    11-25 11:46:17.556: E/Volley(4874):  at java.net.URLEncoder.encode(URLEncoder.java:57) 
    11-25 11:46:17.556: E/Volley(4874):  at com.android.volley.Request.encodeParameters(Request.java:463) 
    11-25 11:46:17.556: E/Volley(4874):  at com.android.volley.Request.getBody(Request.java:449) 
    11-25 11:46:17.556: E/Volley(4874):  at com.android.volley.toolbox.HurlStack.addBodyIfExists(HurlStack.java:236) 
    11-25 11:46:17.556: E/Volley(4874):  at com.android.volley.toolbox.HurlStack.setConnectionParametersForRequest(HurlStack.java:210) 
    11-25 11:46:17.556: E/Volley(4874):  at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:106) 
    11-25 11:46:17.556: E/Volley(4874):  at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:96) 
    11-25 11:46:17.556: E/Volley(4874):  at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:110) 
    11-25 11:46:21.496: E/Erro(4874): java.lang.NullPointerException 
+1

您的一个docTed.getSomething()为null。 – pdegand59 2014-11-25 14:07:23

+0

检查它:http://stackoverflow.com/questions/25091913/volley-string-request-error-while-passing-string-with-null-value-as-param – Saeid 2015-04-18 12:23:46

回答

3

你会得到这个例外,当任何PARAMS值是零。 在参数中检查您的值参数。