我已经在AWS上设置了一个apache2 ubuntu服务器,我在该服务器上创建了一个mySQL db,现在我试图从我的安卓应用程序中更新数据库,但它没有连接。
这是服务器端的PHP文件,应该连接到db。
<?php
define('HOST','ec2-54-171-67-69.eu-west-1.compute.amazonaws.com');
define('USER','root');
define('PASS','password');
define('DB','ugproject');
$con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect');
?>这是Java方法。
private static final String REGISTER_URL = "ec2-54-171-67-69.eu-west-1.compute.amazonaws.com/volleyRegister.php";
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);
}这是我得到的错误:
E/Volley: [126] BasicNetwork.performRequest: Unexpected response code 412 for http://ubuntu@ec2-54-171-67-69.eu-west-1.compute.amazonaws.com/volleyRegister.php 我已经试着尽可能清楚的要求任何更多的信息,谢谢。
发布于 2016-11-11 19:33:54
错误码412意味着
在一个或多个请求头字段中给出的前提条件失败,在服务器上测试时将其计算为false。此响应代码允许客户端在当前资源metainformation (标头字段数据)上设置先决条件,从而防止将所请求的方法应用到预期资源以外的资源。
这很可能是因为您提供的URL
http://ec2-54-171-67-69.eu-west-1.compute.amazonaws.com/volleyRegister.php
似乎在运行一个raw服务器,但是没有正确地解释PHP脚本--它向我显示了PHP文件的原始文本。
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
require_once('dbConnect.php');
$sql = "INSERT INTO users (username,password,email) VALUES ('$username','$email','$password')";
if(mysqli_query($con,$sql)){
echo "Successfully Registered";
}else{
echo "Could not register";
}
}else{
echo 'error';
}
?>也许您没有安装php插件,或者配置得不正确。
这是服务器端的问题,而不是应用程序端的问题。
发布于 2016-11-09 20:31:59
试试这个可能有用。
分隔DB名称
$con = mysql_connect (主机、用户、传递)或模具(“无法连接到MySQL.”);
mysql_select_db(DB);
https://stackoverflow.com/questions/40514722
复制相似问题