2016-06-17 16 views
0

私はAndroidには新しく、アプリではWebServicesを統合するためにVolleyを使用しています。サーバーにAccessTokenを送信する必要があります。ヘッダーを使用してサーバーに渡しますが、アプリ、私はParseErrorを取得しています。助けてください。AndroidのParseError Volley

MainActivity

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     makeJsonObjReq(); 
    } 

    private void makeJsonObjReq() { 

     JSONObject request = new JSONObject(); 
     try { 
      request.put("TripStatus", "-1"); 
      request.put("MedicaidId", "10251025"); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     BackGroundPostServiceClass.makeJsonObjeRequest(MainActivity.this, request, "My url"); 
    } 

BackGroundPostServiceClass

public class BackGroundPostServiceClass { 

    public static GetBatchDetails getProductDetailsImpl; 
    public static ProgressDialog pd; 

    public static void makeJsonObjeRequest(
      final Context context, JSONObject jsonObject, String url) { 

     getProductDetailsImpl = ((GetBatchDetails) context); 
     pd = ProgressDialog.show(context, "Alert", "Please Wait..."); 

     JsonObjectRequest jsonObjReq = new JsonObjectRequest(
       url, jsonObject, 
       new Response.Listener<JSONObject>() { 

        @Override 
        public void onResponse(JSONObject response) { 

         pd.dismiss(); 
         getProductDetailsImpl.getBatchDetails(response.toString()); 
        } 
       }, new Response.ErrorListener() { 

      @Override 
      public void onErrorResponse(VolleyError error) { 
       pd.dismiss(); 

       if (error instanceof TimeoutError || error instanceof NoConnectionError) { 

        showSignOutAlertDialog(context, "TimeoutError"); 

       } else if (error instanceof AuthFailureError) { 
        showSignOutAlertDialog(context, "AuthFailureError"); 

       } else if (error instanceof ServerError) { 

        showSignOutAlertDialog(context, "ServerError"); 

       } else if (error instanceof NetworkError) { 

        showSignOutAlertDialog(context, "NetworkError"); 
       } else if (error instanceof ParseError) { 

        showSignOutAlertDialog(context, "ParseError"); 
       } 
      } 

     }) { 

      /** 
      * Passing some request headers 
      * */ 
      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       HashMap<String, String> headers = new HashMap<String, String>(); 

       String accesstoken = "To6k4mxO0rqvhPVSeZZ5Jr8Ish35vwSUoaxjbQZNgNz2qTd3PO0M4yFPmMCX4B-wdgkLz-DBf-EuMUyQLQDld0inlT3Rm_yc3N4S4Kgjz9buLkHjN_CBxKbaZPaKmP4cxrzqA1KXSbik11OidFVZg1f8m9Ygnra_WL_2hzZE-p1VMDZoj2z0ojofHoVvfnRXv3UTfmlFuHBhCTWKtT2SSGYjwHKEjYqhtjiMhbZ91B8"; 
       headers.put("Authorization", "Bearer " + accesstoken); 

       return headers; 
      } 

      @Override 
      public String getBodyContentType() { 
       return "application/json"; 
      } 

      @Override 
      protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) { 
       int mStatusCode = response.statusCode; 
       System.out.println("Status code is===>"+mStatusCode); 
       return super.parseNetworkResponse(response); 
      } 
     }; 

     jsonObjReq.setRetryPolicy(new RetryPolicy() { 
      @Override 
      public int getCurrentTimeout() { 
       return 150000; 
      } 

      @Override 
      public int getCurrentRetryCount() { 
       return 150000; 
      } 

      @Override 
      public void retry(VolleyError error) throws VolleyError { 

      } 
     }); 

     AppController.getInstance().addToRequestQueue(jsonObjReq); 
    } 
} 

のAppController

public class AppController extends Application { 

    public static final String TAG = AppController.class.getSimpleName(); 

    private RequestQueue mRequestQueue; 
    private ImageLoader mImageLoader; 

    private static AppController mInstance; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     mInstance = this; 
    } 

    public static synchronized AppController getInstance() { 
     return mInstance; 
    } 

    public RequestQueue getRequestQueue() { 
     if (mRequestQueue == null) { 
      mRequestQueue = Volley.newRequestQueue(getApplicationContext()); 
     } 

     return mRequestQueue; 
    } 

    public ImageLoader getImageLoader() { 
     getRequestQueue(); 
     if (mImageLoader == null) { 
      mImageLoader = new ImageLoader(this.mRequestQueue, 
        new LruBitmapCache()); 
     } 
     return this.mImageLoader; 
    } 

    public <T> void addToRequestQueue(Request<T> req, String tag) { 
     // set the default tag if tag is empty 
     req.setTag(TextUtils.isEmpty(tag) ? TAG : tag); 
     getRequestQueue().add(req); 
    } 

    public <T> void addToRequestQueue(Request<T> req) { 
     req.setTag(TAG); 
     getRequestQueue().add(req); 
    } 

    public void cancelPendingRequests(Object tag) { 
     if (mRequestQueue != null) { 
      mRequestQueue.cancelAll(tag); 
     } 
    } 
+0

エラーログを提供してください。 –

+0

あなたは何を意味するのですか?私は理解していません。 – Krish

+0

あなたは 'ParseError'を受け取りました。 logcatを提供してください。 –

答えて

2

はログとして、BNKは応答が良いと言います。あなたはおそらくjsonオブジェクトを受け取っていないので、問題はあります。あなたは

のSystem.out.println(+ mStatusCode "ステータスコードは===>である")の隣に

String jsonString = 
       new String(response.data, HttpHeaderParser.parseCharset(response.headers)); 
System.out.println("Response is===>"+jsonString); 

を追加することができ、さらにデバッグする