2017-02-14 2 views
0

Я работаю над приложением, которое отправит строку в базу данных на моем сервере, однако по какой-то причине данные не получены. Может быть, вы могли бы указать мне в правильном направлении, я искал всю сеть, но не могу найти причину, почему она не работает.Отправка строки из приложения на сервер

Мой андроид код:

public class HttpURLConnectionHandler 
    { 
    protected String urlG = "http://example.com/"; 
    public String sendText(String text) 
    { 

     try { 
      URL url = new URL(urlG+"phpcode.php"); 
      HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      conn.setRequestMethod("POST"); 

      conn.setDoOutput(true); 
      conn.setDoInput(true); 
      conn.connect(); 
      DataOutputStream wr = new DataOutputStream(
        conn.getOutputStream()); 

      wr.writeBytes("mydata:"+text); 
      wr.flush(); 
      wr.close(); 

      InputStream is = conn.getInputStream(); 
      BufferedReader rd = new BufferedReader(new InputStreamReader(is)); 
      String line; 
      StringBuffer response = new StringBuffer(); 
      while((line = rd.readLine()) != null) { 
       response.append(line); 
       response.append('\r'); 
      } 
      rd.close(); 
      return response.toString(); 
     } 
     catch(Exception e){ return "error";} 
    } 

} 

Мой код в PHP:

<?php 
$servername = "here is my server"; 
$username = "my username"; 
$password = "my pass"; 
$dbname = "database"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 



$image = $_POST['image']; 


$sql = "INSERT INTO photos (image) 
VALUES ('{$image}')"; 

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
?> 

Так я называю мой класс является:

HttpURLConnectionHandler handler= new HttpURLConnectionHandler(); 
String response = handler.sendText("this is a text"); 
+0

Json будет лучшим вариантом с точки зрения связи между сервером и клиентом. – IteratioN7T

+0

Я не уверен, что вы пытаетесь сделать здесь, но, во-первых, ваш код android и PHP-код не совпадают, оба они написаны для разных цели. Во-вторых, попробуйте некоторые библиотеки, такие как volley или okhttp для сетевых запросов. –

+0

Основная цель приложения - отправить строку в базу данных на моем сервере, я совершенно новичок в этом, поэтому я немного борюсь. –

ответ

0

Вы пытаясь получить значение переменной POST image в вашем PHP, но вы отправляете переменную mydata.

+0

, так что если я хочу отправить строку в свою базу данных, что вместо POST я должен использовать? –

+0

$ image = $ _POST ['mydata']; Я никогда не пишу код для Android, но я думаю, что ваш код никогда не отправляет переменную «image» в POST. Вы можете увидеть все значения запроса POST, добавив что-то вроде: var_dump ($ _ POST); к вашему PHP-коду. –