1

私はvolleyを使用してJSONRequestを作成しました。サービスが正常にヒットし、サービス終了を確認してデータを受け取り、「Success」を返します。JSONObjectからVolleyのStringレスポンスを取得する方法

サービスではStringが出力され、Volleyでは出力にはJSON Dataが出力されます。したがって、onResponseの代わりにonErrorメソッドを実行します。

JSONObjectをリクエストとして使用している場合は、文字列レスポンスを受け入れる方法を教えてください。

Request<JSONObject> jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, "http://192.168.0.101:8888/api/services/mytest", 
      jsonParent, new Response.Listener<JSONObject>() { 
     @Override 
     public void onResponse(JSONObject response) { 
      Log.d("Success", response.toString()); 
      deleteFile(); 
     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Log.d("Error", error.toString()); 
      deleteFile(); 
     } 

    RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext()); 
    requestQueue.add(jsonObjectRequest); 
+0

jsonobjectで文字列リクエストまたは文字列を送信 –

+0

JSON値を取得する場合は文字列のみStringRequestを使用する場合に依存JSONObject/ArrayRequest – W4R10CK

答えて

6

JSONRequestではなくStringRequestを使用できます。

StringRequest stringRequest = new StringRequest(methodType, url, 
        new Response.Listener<String>() { 
         @Override 
         public void onResponse(String response) { 

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

       } 
      }){ 
       @Override 
       public Map<String, String> getHeaders() throws AuthFailureError { 
        return headers == null ? super.getHeaders() : headers; 
       } 

       @Override 
       public byte[] getBody() throws AuthFailureError { 
        return "Your JSON body".toString().getBytes(); 
       } 
      }; 

getheaders方法は、あなたがrequest bodyを提供したいとgetBody場合はカスタムヘッダーを追加することです。

+0

を使用しますが、リクエストのBodyにJSONオブジェクトを追加する必要がありますJSONObjectリクエストを介してのみ可能です。 – Kirmani88

+1

これもできますが、私は答えを更新させてください –

+0

ありがとう!!!!! :) – Kirmani88

関連する問題