当我尝试将数据发送到myregister.php时,$ _POST数组为空

时间:2016-05-21 15:04:55

标签: java php android post

我正在开发一款Android应用。对于登录我需要发送数据库的数据,但是当我尝试在编码后使用$ _POST数组时它似乎是空的(我试图打印响应,我认为这是我的问题)。

这是我的应用程序中的javacode:

private String register (String username, String password, String number) {

    String reg_url = "myDomain/register.php";


    try {
        URL url = new URL(reg_url);
        HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
        httpURLConnection.setRequestMethod("POST");
        httpURLConnection.setDoOutput(true);
        httpURLConnection.setRequestProperty("Accept-Charset", "UTF-8");
        httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        OutputStream OS = httpURLConnection.getOutputStream();

        BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(OS, "UTF-8"));

        String data = URLEncoder.encode("username", "UTF-8") + " = " + URLEncoder.encode(username, "UTF-8") + "&" +
                        URLEncoder.encode("password", "UTF-8") + " = " + URLEncoder.encode(password, "UTF-8") + "&" +
                        URLEncoder.encode("number", "UTF-8") + " = " + URLEncoder.encode(number, "UTF-8");
        bufferedWriter.write(data);

        bufferedWriter.flush();
        bufferedWriter.close();
        OS.close();
        InputStream IS = httpURLConnection.getInputStream();

        BufferedReader bufferedReader= new BufferedReader(new InputStreamReader(IS,"iso-8859-1"));
        String response = "";
        String line;

        while ((line = bufferedReader.readLine())!=null) response += line ;

        Log.i("Response", response);
        IS.close();
        bufferedReader.close();

        if (!response.toLowerCase().contains("fail"))
            return Language.registered;
        else
            return Language.aProblemOccurred;



    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
        return Language.aProblemOccurred;
    } catch (IOException e) {
        e.printStackTrace();
        return Language.aProblemOccurred;
    }

}

这是注册的简单php代码:

<?php 

    require "init.php";

    $username = $_POST["username"];
    $password = $_POST["password"];
    $number   = $_POST["number"];
    $mpt      = "1";

    $sql_query = "insert into Users values( '$mpt' , '$number' , '$username' , '$password' , '$number',  '$mpt' ,  '$mpt' ,  '$mpt' ,  '$mpt' ,  '$mpt' ,  '$mpt' ,  '$mpt' );"; 

    if ( mysqli_query ( $res , $sql_query ) )
    {
        echo "<h3> Data Insert Success...".$number.$password.$username.$_POST["password"]."<h3>";
    }
    else 
    {
        echo "Data Insert fail: Error:".mysqli_error($res).$number.$password.$username;
    }

?>

有人可以帮助我????

1 个答案:

答案 0 :(得分:0)

我实际上不知道java我知道基础知识,但我还没有在3年内使用它,所以我不知道你是如何从用户的post方法获得价值的。但是,您可以使用url作为get方法来获取用户的输入。

  "myDomain/register.php?username=abc&password=qwqw1w1"

然后把它作为php中的get funtion。或者您可以先在变量中输入用户输入,然后使用POST方法将它们发送到php,这应该可以正常工作

$username = $_GET["username"];
$password = $_GET["password"];
$number   = $_GET["number"];