如何在json post请求中设置内容类型

时间:2017-05-19 13:20:38

标签: android

我正在尝试运行POST webservice,但我的hashmap返回null。我不知道如何将内容类型设置为json,我相信这是我的应用程序导致异常的原因。如何解决此异常?< / p>

                    Map<String, String> new_details = new HashMap<>();
                    new_details.put("registrationNo","CELLOTESTIMMOB");
                    new_details.put("commandType","LOCK");
                    new_details.put("requestID","TEST12345");

            String URL = "MY_REST_URL";
            PostApi api = new PostApi(Request.Method.POST, URL, new JSONObject(new_details), new Response.Listener<JSONObject>() {


                @Override
                public void onResponse(JSONObject response) {


                    try {

                        String status = response.getString("status");

                        if (status.equals("Success")) {
                            Toast.makeText(getApplicationContext(), "DONE", Toast.LENGTH_SHORT).show();

                        }
                    }catch (Exception e)
                    {
                        e.printStackTrace();
                    }
                    return;
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            });
            App.getVolleyQueue().add(api);


          05-19 19:02:34.907 8425-8425/t4u.com.lairdapp E/AndroidRuntime: FATAL EXCEPTION: main
                                                            Process: t4u.com.lairdapp, PID: 8425
                                                            java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference
                                                                at com.android.volley.Request.<init>(Request.java:136)
                                                                at com.android.volley.toolbox.JsonRequest.<init>(JsonRequest.java:58)
                                                                at com.android.volley.toolbox.JsonObjectRequest.<init>(JsonObjectRequest.java:47)
                                                                at t4u.com.lairdapp.api.PostApi.<init>(PostApi.java:20)
                                                                at t4u.com.lairdapp.BaseActivity$C00001.onClick(BaseActivity.java:128)
                                                                at android.view.View.performClick(View.java:5246)
                                                                at android.widget.TextView.performClick(TextView.java:10565)
                                                                at android.view.View$PerformClick.run(View.java:21200)
                                                                at android.os.Handler.handleCallback(Handler.java:739)
                                                                at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                at android.os.Looper.loop(Looper.java:145)
                                                                at android.app.ActivityThread.main(ActivityThread.java:6946)
                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                at java.lang.reflect.Method.invoke(Method.java:372)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
  package t4u.com.lairdapp.api;
  import android.util.Log;

 import com.android.volley.DefaultRetryPolicy;
 import com.android.volley.NetworkResponse;
 import com.android.volley.Response;
 import com.android.volley.VolleyError;
 import com.android.volley.toolbox.JsonObjectRequest;

 import org.json.JSONObject;


public class PostApi extends JsonObjectRequest {

Response.Listener<JSONObject> listener;

public PostApi(int method, String url, JSONObject jsonRequest, Response.Listener<JSONObject> listener, Response.ErrorListener errorListener) {
    super(method, url, jsonRequest, listener, errorListener);
    this.listener=listener;
    setRetryPolicy(new DefaultRetryPolicy(
            0,
           -1,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
}


@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
    Log.e("", "PUT OTP Response : " + super.parseNetworkResponse(response));
    return super.parseNetworkResponse(response);
}

@Override
protected void deliverResponse(JSONObject response) {
    //super.deliverResponse(response);
    listener.onResponse(response);
}

@Override
protected VolleyError parseNetworkError(VolleyError volleyError) {
    Log.e("","PUT OTP Volley Error : " + volleyError);
    return super.parseNetworkError(volleyError);
}

}

0 个答案:

没有答案