我对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“这个错误”
在这段代码中提供帮助会很棒。这是我第一次尝试连接,所以我不清楚这些事情。
答案 0 :(得分:0)
您可以通过运行PHP文件直接使用POST。但是,可以通过在URL中附加params来测试GET。 要测试您的PHP文件/ API,您有2个解决方法。
将android和PHP中的POST更改为GET并测试它。测试完成后,您可以将其更改为POST。如果它适用于GET,它也适用于POST。
您可以通过访问http://yourdomain.com/example.php?username=something&password=something&email=something
如果您对第一种技术不满意,可以使用this Chrome插件。它是邮差。这对REST客户端测试来说意味着什么。您选择方法POST
并传递参数。那就是它。