应用程序可以';无法访问PHP文件或Android Studio中的PHP文件出错

应用程序可以';无法访问PHP文件或Android Studio中的PHP文件出错,php,android,Php,Android,我的应用程序尝试在服务器中创建新行。 我得到的错误是jObj=newjsonobject(json)处的空点异常 这是创建新行的php文件: <?php $response = array(); if (isset($_POST['user']) && isset($_POST['pass']) & isset($_POST['mail'])&& isset($_POST['num'])) { $user = $_POST['user'];

我的应用程序尝试在服务器中创建新行。 我得到的错误是
jObj=newjsonobject(json)处的空点异常

这是创建新行的php文件:

<?php
$response = array();
if (isset($_POST['user']) && isset($_POST['pass']) &  isset($_POST['mail'])&&     isset($_POST['num']))
{
$user = $_POST['user'];
$pass = $_POST['pass'];
$mail = $_POST['mail'];
$num = $_POST['num'];
require_once __DIR__ . '/db_connect2.php';
$db = new DB_CONNECT();
$result = $db->query("INSERT INTO users(Name, Password, Email,ConfirmNum) VALUES('$user', '$pass', '$mail', '$num')");
if ($result) {
$response["success"] = 1;
$response["message"] = "user successfully created.";
echo json_encode($response);
} else {
$response["success"] = 0;
$response["message"] = "Oops! An error occurred.";
echo json_encode($response);
}
} else {
$response["success"] = 0;
$response["message"] = "missing fields";
echo json_encode($response);
} 
?>
对解析器的调用是:

JSONObject json = jsonParser.makeHttpRequest(url_create_product,"POST", params);
“add_user”用于生成新行的php文件(它是正确的url),“params”不是空的,并且包含正确的键和内容。 解析器或php文件是否有问题? 这是一个非常严肃的学校项目,这是我唯一缺少的东西

以下是参数:

 params.put("user", "swane15");
 params.put("pass", "asdeg124A");
 params.put("mail", "asf@asd.com");
 params.put("num", "111111");
为什么php文件不返回任何内容?是因为应用程序无法访问它,还是php文件本身存在错误

 MediaType JSON = MediaType.parse("Content-Type:application/json; charset=UTF-8");
 RequestBody body = RequestBody.create(JSON, params.toString());
改为:

      MediaType contentType = MediaType.parse("application/x-www-form-urlencoded; charset=UTF-8");

      String content = "";        
      for (String key : params.keySet())
      {
          if ( !content.isEmpty())
              content += "&";

          content += key + "=" + params.get(key);
      }

      RequestBody body = RequestBody.create(contentType, content);
要正确执行此操作,您应该使用URLEncoder.encode()值

改为:

      MediaType contentType = MediaType.parse("application/x-www-form-urlencoded; charset=UTF-8");

      String content = "";        
      for (String key : params.keySet())
      {
          if ( !content.isEmpty())
              content += "&";

          content += key + "=" + params.get(key);
      }

      RequestBody body = RequestBody.create(contentType, content);

要正确执行此操作,您应该使用URLEncoder.encode()值。

那么问题出在哪里?出了什么问题?问题是什么?如果你继续以这种模糊的方式发帖,你可以发帖一百次。事实上,以前的帖子都包含了这个问题,而且这个问题可能从标题上看很清楚。所以我真的很想看到任何人的回答。问题不是放在标题中,而是在文章的正文中描述问题。如果缺少必填字段,那么您应该告诉我们哪些字段。由于您没有显示您发送的参数,那么您认为我们如何知道缺少了什么?设置的参数是id=1,名称、价格和描述是编辑文本中所写的内容。我已检查了参数是通过在Toast上打印参数来设置的,并且值是设置的
id=1
。根据php脚本,应该是
pid=1
。但我们无法看到您发送的参数。在测试期间,您应该只发送固定字符串。节省了你的时间。那有什么问题?出了什么问题?问题是什么?如果你继续以这种模糊的方式发帖,你可以发帖一百次。事实上,以前的帖子都包含了这个问题,而且这个问题可能从标题上看很清楚。所以我真的很想看到任何人的回答。问题不是放在标题中,而是在文章的正文中描述问题。如果缺少必填字段,那么您应该告诉我们哪些字段。由于您没有显示您发送的参数,那么您认为我们如何知道缺少了什么?设置的参数是id=1,名称、价格和描述是编辑文本中所写的内容。我已检查了参数是通过在Toast上打印参数来设置的,并且值是设置的
id=1
。根据php脚本,应该是
pid=1
。但我们无法看到您发送的参数。在测试期间,您应该只发送固定字符串。节省您的时间。如果您可以再看一次,出于某种原因,我以前的项目工作得很好,但这一次不行。我所做的只是改变参数,如果你能再看一次,出于某种原因,我以前的项目运行良好,但这一次不行。我所做的就是改变参数