从应用程序发送字符串到服务器
问题描述:
我一直在努力的应用程序将发送字符串到我的服务器上的数据库,但由于某种原因没有收到数据。也许你可以指出我的方向是正确的,我一直在网上寻找,但找不到它不工作的原因。从应用程序发送字符串到服务器
我的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");
答
你试图在您的PHP中获得POST变量值图片,但您发送变量mydata。
+0
所以如果我想发送一个字符串到我的数据库什么,而不是我应该使用POST? –
+0
$ image = $ _POST ['mydata'];我从来没有为android编写代码,但我认为你的代码永远不会向POST发送“image”变量。您可以通过添加如下所示来查看POST请求的所有值:var_dump($ _ POST);到您的PHP代码。 –
从服务器到客户端的通信方面,Json会是一个更好的选择 – IteratioN7T
我不确定你要在这里做什么,但首先你的android代码和php代码不匹配,它们都是为不同的目的。其次尝试一些库,如volley或okhttp的网络请求。 –
该应用程序的主要目的是发送一个字符串到我的服务器上的数据库,我对此很新,这就是为什么我挣扎了一下。 –