我正在使用MIT APP Inventor开发Android APP。
我有2部手机,在我的服务器上使用php脚本进行通信。
非常简单,使用TinyWebDB组件,我需要发布并获取文本字符串。
每个手机使用php创建一个文本文件(aaa.txt和bbb.txt)“aaa”和“bbb”是每个pone上变量$ tag的内容。
我正确地创建了文本文件,并在其上发布了值,但是当我尝试从另一部手机获取值时,我收到错误:
java.lang.String类型的值br无法转换为JSONArray
有我的php脚本:
<?php
$postUrl=$_SERVER["REQUEST_URI"];
if(strpos($postUrl,'storeavalue')){
// Storing a Value
// Get that tag
$tag = trim($_POST["tag"]);
// Get the value
$value = trim($_POST["value"]);
// Create the text file
$myFile = "$tag.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
// str_replace, delete "
fwrite($fh, str_replace('"', '', $value));
fclose($fh);
} else {
// Retrieving a Value
$tag = trim($_GET["tag"]);
$myFile = "$tag.txt"; //there happens the error
$fh = fopen($myFile, 'r');
$theData = fgets($fh);
fclose($fh);
$resultData = array("VALUE",$tag,array($theData));
$resultDataJSON = json_encode($resultData);
echo $resultDataJSON;
}
?>
因此,在检索值时,变量$ tag应包含“aaa.txt”或“bbb.txt”。
如果我使用变量$ tag来指定文件,我会收到错误,但如果我改为:
$myFile = "aaa.txt";
或
$myFile = "bbb.txt";
它完美无缺。
有人可以帮帮我吗?
你的时间感谢抱歉英语不好:/
--------- --------- EDIT
我解决了这个问题,它非常简单,我使用POST方法存储值,并使用GET方法来检索它。现在我只使用POST方法,它完美无缺。
只需更改一行:
// Retrieving a Value
$tag = trim($_POST["tag"]);