2015-11-05 3 views
-4

У меня очень плохое время, пытаясь выяснить ошибку в моем коде, чтобы реализовать соединение между приложением android и php-сервером.отправить объект JSON с android на php-сервер

Ниже мой PHP-код на сервере:

<?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; 
} 
?> 

И мой стороне клиента код выглядит следующим образом:

// 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; 

Пожалуйста ценится любая помощь.

+2

какие ошибки? что происходит или не происходит? в чем проблема? Являются ли java или php-коды генерированием каких-либо исключений? – Breavyn

+0

Извините за отсутствие этого. То, что я получаю в хорошем функционировании приложения, я беру на себя и, возможно, отправляю его. Проблема в том, что я не поймаю этот объект на сервере. Я имею в виду, что база данных остается неизменной. –

+0

'writer.write (params.toString());'. Мы не можем видеть, какие параметры вы отправляете, поэтому мы не можем проверить. Вы должны проверить и повторить намного больше в своем php-скрипте, а затем сначала увидеть в своем коде Android, что вы вернете. Теперь вы ничего не знаете. – greenapps

ответ

0

Вы не открывающимися соединение

Просто позвоните

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(); 
+0

вам не нужно будет вызывать 'connect()' – Breavyn

+0

Не получается ли это по url.openConnection? –

+0

@husseinhammoud это делается с помощью 'urlConnection.getInputStream()' – Breavyn

Смежные вопросы