if($ _ SERVER ['REQUEST_METHOD'] =='POST')和android帖子请求无效

时间:2017-05-19 06:20:11

标签: php android

我对Android开发非常新,我正在尝试连接登录与web服务器。但是我在php中的Post请求方法给出了错误。我不知道事情很清楚。我正在使用凌空字符串请求我的代码连接。

这是我的dbconnect.php代码:

 define('HOST','127.0.0.1');

 define('USER','root');

 define('PASS','');

 define('DB','registration');   // database

 $con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect');

这是我的Php代码:

    if (  $_SERVER  [  '    REQUEST_METHOD  ']   ==   'POST') 

  {

  $username  =  $_POST['username'];

 $email = $_POST['email'];

 $password = $_POST['password'];

 require_once('dbConnect.php');

 $sql = "INSERT INTO signin (username,password,email) VALUES('nabeel','nabeel12@ucp.edu','manofsteel2')";


    if(mysqli_query($con,$sql))
    {
        echo "Successfully Registered";
    }
    else
    {
        echo "Could not register";
    }
  }

 else
 {

   echo ' this error';

 }

我的Android代码:

private void registerUser() {

    final String username = editTextUsername.getText().toString().trim();
    final String password = editTextPassword.getText().toString().trim();
    final String email = editTextEmail.getText().toString().trim();

    StringRequest stringRequest = new StringRequest(Request.Method.POST,REGISTER_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
                }
            }){
        @Override
        protected Map<String,String> getParams(){
            Map<String,String> params = new HashMap<String, String>();
            params.put(KEY_USERNAME,username);
            params.put(KEY_PASSWORD,password);
            params.put(KEY_EMAIL, email);
            return params;
        }

    };


    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);


   stringRequest.setRetryPolicy(new DefaultRetryPolicy(
           10000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT
   ));


}

当我只运行php代码时它不运行if($_SERVER['REQUEST_METHOD']=='POST')它移动到else条件echo“这个错误”

在这段代码中提供帮助会很棒。这是我第一次尝试连接,所以我不清楚这些事情。

1 个答案:

答案 0 :(得分:0)

您可以通过运行PHP文件直接使用POST。但是,可以通过在URL中附加params来测试GET。 要测试您的PHP文件/ API,您有2个解决方法。

  1. 将android和PHP中的POST更改为GET并测试它。测试完成后,您可以将其更改为POST。如果它适用于GET,它也适用于POST。 您可以通过访问http://yourdomain.com/example.php?username=something&password=something&email=something

  2. 直接查看PHP
  3. 如果您对第一种技术不满意,可以使用this Chrome插件。它是邮差。这对REST客户端测试来说意味着什么。您选择方法POST并传递参数。那就是它。