2016-10-26 12 views
1

私はこれまで私が 必要な情報を送信します(非常に基本的な)メソッドを作成するために管理している、ボレーでPOSTリクエストとして無効なJSONフォーマットは

data={"process" : "ExampleProcess", "phone" : "123456"} 

に合格しようとしていますサーバーに送信しますが、失敗した応答が表示されます。

私は

ERROR :: com.android.volley.ParseError見ることができるプログラムにログを追加しました:org.json.JSONException:

の文字2の入力の終了をしかし、私は信じています私の情報を送信しようとしている方法と関係しています。デバッグ時に私はエラーが表示されていることに気づきました

メソッドは 'java.lang.NullPointerException'例外を投げました。 org.json.JSONObject.toString()を評価できません。

 total.put("data", data.toString()); 

 total.put("data", data); 

にエラーが持続します:私は変更しても、何をするか分からないために

。どのように私は失敗した要求に応じて((ところで例から取り出した)私のURL

public void volleyConnector(String url) { 
     final JSONObject data = new JSONObject(); 
     final JSONObject total = new JSONObject(); 


     try { 

      data.put("process", "ExampleProcess"); 
      data.put("phone" , "123456789"); 
      total.put("data", data.toString()); 

     } catch(JSONException e) { 

      Log.v("JSON ERROR: ", e.toString()); 
     } 


     JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(url, total, new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 
       Log.v("--------------","---------------------------"); 
       Log.v("RESPONSE: ", "-----> " + response.toString()); 
       Log.v("<----- BTW------>", total.toString()); 
       Log.v("--------------","---------------------------"); 

      } 
     }, new Response.ErrorListener(){ 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       Log.v("--------------","---------------------------"); 
       Log.v("RESPONSE: " , "xXxX FAIL X_____X FAIL XxXx"); 
       Log.v("|>>>ERROR: ", error.toString()); 
       //Log.v("|>>>ERROR: ", error.getLocalizedMessage()); 
       Log.v("<----- BTW------>", total.toString()); 

       Log.v("--------------","---------------------------"); 


      } // end of onErrorREsponse 
     }){ 
       @Override 
       public Map<String, String> getHeaders() throws AuthFailureError { 
        HashMap<String, String> headers = new HashMap<String, String>(); 
        headers.put("Content-Type", "application/json; charset=utf-8"); 
        return headers; 
       } 

     }; 
     Volley.newRequestQueue(this).add(jsonObjectRequest); 
    } // end of volley connector method 

私の完全なエラー・ログに正しいJSON POSTリクエストを送信することについては行くことができると、この時点で私は見当もつかない)読み:

V/RESPONSE:: xXxX FAIL X_____X FAIL XxXx 
V/|>>>ERROR:: com.android.volley.ParseError: org.json.JSONException: End of i 
V/<----- BTW------>: {"data":"{\"process\":\"ExampleProcess\",\"phone\":\"123456789\"}"} 

私は何が起こっているかのようにあまりにもわからないと私はAndroidのスタジオでのドキュメントおよびデバッグを読み取ることによって、どこにもなっていません。私の知る限り、パラメータの1つはJSONObjectであり、誤ってフォーマットされている可能性がありますが、渡しています。

ご協力いただければ幸いです。

答えて

6

あなたが正しい行っているが、

JSONObject data= new JSONObject(); 

      data.accumulate("username", "mobileGps"); 
      data.accumulate("password", "9565551236"); 

      JSONObject total= new JSONObject(); 
      total.put("data",data); 

      json = jsonObjectNew.toString(); 

をIS-および方法に関するこの「JSON」を渡し、一度チェックし、あなたのコード内の1つの小さな変更を加えることにより、一度のコードを試してみてください。同じように見えるが、一度お試しください。

+0

私は試しましたが、何らかの理由でまだ動作しませんでしたが、最終的にJSON情報をStringRequest()として送信することになりました。私はそれが通常のJsonObjRequestsではうまくいかない理由についての手がかりを持っていません –

関連する問題