简体   繁体   中英

Unable to send Json object from android to php

I know this question was asked before. Please don't mark as duplicate or block my account.

I am trying to send Json object to php using volley. So that I am using Customrequest which I have found a solution in stackoverflow but it didn't work See this

JsonObject response = new JsonObject();
response.add("Description", a1 );/*a1 is Json array of multiple values*/
response.add("Amount", a2 );/*a2 is Json array of multiple values*/
System.out.println("Json:"+response);/*Both the list is saved inside this Json object*/

Map<String,String> hm = new HashMap();
hm.put("Values",String.valueOf(response));/*Trying to pass the json object to server respose is the Json object*/

CustomRequest req = new 
CustomRequest(Request.Method.POST,ip,hm, this.createRequestSuccessListener(), this.createRequestErrorListener()); /*I have used the solution here*/

Mysingleton.getInstance(this).addTorequestque(req);/*This is a singleton class*/
public Response.Listener<JSONObject> createRequestSuccessListener(){
    return new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            AlertDialog.Builder al = new AlertDialog.Builder(Database.this)
                .setTitle("Message")
                .setMessage("Sent")
                .setPositiveButton("OK",null);
            AlertDialog al1 = al.create();
            al.show();
        }
    };
}

public Response.ErrorListener createRequestErrorListener(){
    return new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            AlertDialog.Builder al = new AlertDialog.Builder(Database.this)
                .setTitle("Error")
                .setMessage("Something went wrong")
                .setPositiveButton("OK",null);
            AlertDialog al1 = al.create();
            al.show();
        }
    };
}

My php source code is here

if(!empty($_POST['Values']){
    $all_arraylist = json_decode(Values,true);
    $ result = print_r($all_arraylist,true);
    echo $result;
}
else{
    echo "Empty";
}

expecting at least error message to pop up but I am unable to get even that. That is I am not getting any response. Please help

I can't say anything about your Java code, but your PHP code is not valid at all. This usually results in a blank screen being served back to the client without any content at all.

if(!empty($_POST['Values']){
    $all_arraylist = json_decode(Values,true);

You probably mean json_decode($_POST['Values'], true); here, since just Values by itself doesn't make any sense.

    $ result = print_r($all_arraylist,true);

The space after $ will confuse PHP, as that isn't a valid variable name character (and you're not using $ result on the next line either).

(and instead of using true to return the value from print_r and then echo that returned value, you can just use print_r($all_arraylist) to make it print out everything.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM