简体   繁体   中英

send a JSON object from android to php server

I'm having a very bad time trying to figure out the error in my code to implement the connection between the android application and the php server.

The following is my php code at the server:

<?php 
$json = file_get_contents('php://input');
$request = json_decode($json, true);
$response = array();
print "PHP HERE!";
// check for required fields
if (isset($request['Year']) && isset($request['Month']) && isset($request['Day_of_month']) && isset($request['Day_of_week']) && isset($request['Hour']) && isset($request['Minute'])) {

    $Year= $request['Year'];
    $Month= $request['Month'];
    $Day_of_month= $request['Day_of_month'];
    $Day_of_week= $request['Day_of_week'];
    $Hour= $request['Hour'];
    $Minute= $request['Minute'];

    // include db connect class
    require_once 'db_connect.php';

    // connecting to db
    $db = new DB_CONNECT();

    // mysql inserting a new row
    $result = mysql_query("INSERT INTO date VALUES('$Year','$Month','$Day_of_month','$Day_of_week','$Hour','$Minute')");

    $response["success"] = 1;
    echo json_encode($response);
    exit;
}
?>

And my client side code is the following:

// Making HTTP request
try {
    // Open connection to URL and perform POST request.
    URL url1 = new URL(url);
    HttpURLConnection urlConnection = (HttpURLConnection) url1.openConnection();
    urlConnection.setDoOutput(true); // Set Http method to POST
    urlConnection.setDoInput(true);
    urlConnection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
    urlConnection.setRequestMethod("POST");
    urlConnection.setChunkedStreamingMode(0); // Use default chunk size

    // Write serialized JSON data to output stream.
    OutputStreamWriter writer = new OutputStreamWriter(urlConnection.getOutputStream());
    //OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
    //BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
    writer.write(params.toString());
    writer.flush();
    writer.close();

    InputStream input = urlConnection.getInputStream();
    BufferedReader reader = new BufferedReader(new InputStreamReader(input));
    //BufferedReader reader = new BufferedReader(new InputStreamReader(
    //        is, "iso-8859-1"), 8);
    StringBuilder result = new StringBuilder();
    String line;

    while ((line = reader.readLine()) != null) {
        result.append(line);
    }
    jObj = new JSONObject(result.toString());
} catch (Exception e) {
    Log.e("Buffer Error", "Error converting result " + e.toString());
}

// return JSON String
return jObj;

Please any help is appreciated.

You are not openning connection

Just call

urlConnection.connect(); //to open coonection and than
OutputStream os = urlConnection.getOutputStream();
OutputStreamWriter osWriter = new OutputStreamWriter(os,
                        "UTF-8");
BufferedWriter writer = new BufferedWriter(osWriter);
writer.write(params.toString());

writer.flush();
writer.close();
os.close();

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