从应用程序发送字符串到服务器

问题描述:

我一直在努力的应用程序将发送字符串到我的服务器上的数据库,但由于某种原因没有收到数据。也许你可以指出我的方向是正确的,我一直在网上寻找,但找不到它不工作的原因。从应用程序发送字符串到服务器

我的Android代码:

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

该应用程序的主要目的是发送一个字符串到我的服务器上的数据库,我对此很新,这就是为什么我挣扎了一下。 –

我让你看看周围Retrofit

你试图在您的PHP中获得POST变量值图片,但您发送变量mydata

+0

所以如果我想发送一个字符串到我的数据库什么,而不是我应该使用POST? –

+0

$ image = $ _POST ['mydata'];我从来没有为android编写代码,但我认为你的代码永远不会向POST发送“image”变量。您可以通过添加如下所示来查看POST请求的所有值:var_dump($ _ POST);到您的PHP代码。 –