Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有多个参数的Android Volley JsonObjectRequest_Java_Android_Android Volley - Fatal编程技术网

Java 具有多个参数的Android Volley JsonObjectRequest

Java 具有多个参数的Android Volley JsonObjectRequest,java,android,android-volley,Java,Android,Android Volley,我目前正在开发一款android应用程序,需要您的帮助 当我尝试使用Volley支持的JsonObjectRequest时,我得到一个错误: com.android.volley.ParseError:org.json.JSONException:java.lang.String类型的值1无法转换为JSONObject 以下是我的两个相关代码片段: Receiver.java NewInfoFragment.java 有人有好的解决办法吗?或者有人知道我如何解决这个问题吗? 参数被发送到接收器中

我目前正在开发一款android应用程序,需要您的帮助

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

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

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

Receiver.java

NewInfoFragment.java

有人有好的解决办法吗?或者有人知道我如何解决这个问题吗? 参数被发送到接收器中,他无法将它们解析为JsonObject,但我不知道如何做到这一点

编辑
对于所有有相同错误的人,请重新检查JSON作为响应。如果无效,截击将抛出此异常

你得到了什么样的回应?您是否可以尝试使用AdvancedRestClient或至少请共享您正在使用的RestAPI URLusing@Mithun我得到的响应是:java.lang.String类型的值1无法转换为JSONObject,RestAPI使用的是我自己编写的。当我从另一个地方访问它时,Ajax调用/php/。。。它起作用了!理想情况下,您的请求和响应都应该是JSON格式,否则,Volley将无法解析响应,因此会抛出ParseException。如果没有RestAPI,很难找出问题所在,因为您的请求结构和响应也可能存在问题。@Mithun在我看来,两者都是JSON。我正在创建一个JSONObject,并从我的Web服务获得一个JSONObject作为响应。我的Web服务所期望的数据是一个包含4个变量的普通POST请求,我认为volley通常应该这样做,对吗/我之前没有看到你更新的代码。。。你的要求似乎很好!您正在创建映射并将其包装在JSONObject中发送。。。但事实是,值1基本上是一个字符串,而不是JSON!但问题是,若你们使用AdvancedRestClient,你们得到了什么价值?如果它是一个JSON响应,那么肯定会有一些问题,我们如何发送我们的请求,如果不是截取,则必须进行调查,以便更好地调试。。。看看它是否提供了更多的信息
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);
}
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);
        }
    });
}