具有多个参数的Android Volley JsonObjectRequest

时间:2015-05-24 15:34:33

标签: java android android-volley

我目前正在开发Android应用,我需要你的帮助。

当我尝试使用Volley支持的JsonObjectRequest时,我收到错误:

  

com.android.volley.ParseError:org.json.JSONException:java.lang.String类型的值1无法转换为JSONObject

这是我的两个相关代码片段:

Receiver.java

public void sendNewInfo(String url, HashMap<String , String> params) {
    JsonObjectRequest newInfoRequest = new JsonObjectRequest(Request.Method.POST, url, new JSONObject(params) , new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            //doing some fancy stuff here
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(newInfoFragment.getActivity(), "Error: " + error.getMessage(), Toast.LENGTH_LONG).show();
        }
    });
    queue.add(newInfoRequest);
}

NewInfoFragment.java

public void onViewCreated(final View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    Button btn = (Button) view.findViewById(R.id.btnSendeInfo);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            EditText title = (EditText) view.findViewById(R.id.newInfoTitle);
            EditText text = (EditText) view.findViewById(R.id.newInfoText);

            HashMap<String , String> params = new HashMap<String , String>();
            params.put("appkey", "123");
            params.put("autor", ((NewInfo) getActivity()).getBenutzername());
            params.put("titel", title.getText().toString());
            params.put("text", text.getText().toString());

            Receiver receiver = new Receiver(infofragment);
            receiver.sendNewInfo("myurlstringhere", params);
        }
    });
}

有人有一个很好的解决方案或任何想法如何解决这个问题? params被发送到Receiver,他无法将其解析为JsonObject,但我不知道如何执行此操作。

修改 对于所有拥有相同错误的人,请重新检查您获得的JSON作为回复。如果它无效,Volley会抛出这个例外!

0 个答案:

没有答案