Я пытаюсь использовать залп, чтобы добавить счет в мою базу данных. Я проверил свой URL с помощью запроса POST с помощью Postman, я также вручную набрал URL с параметрами в приложении для Android на запрос POST, и это работает. поэтому я предполагаю, что моя проблема в моем коде Android? Или я должен использовать getParams, чтобы вручную построить строку URL?
ошибка, которую я получаю от моего бэкэнда:
Ошибка: ER_BAD_FIELD_ERROR: неизвестный столбец «undefined» в «списке полей»
, что заставляет меня думать, что мои параметры не инициализируются до вызова StringRequest.
public void submitHighScore(){
StringRequest postRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>()
{
@Override
public void onResponse(String response) {
// response
Toast.makeText(context, response , Toast.LENGTH_SHORT).show();
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
// error
Toast.makeText(context, "Error: unable to submit Score " + error , Toast.LENGTH_SHORT).show();
}
}
){@Override
protected Map<String, String> getParams() throws com.android.volley.AuthFailureError
{
Map<String, String> params = new HashMap<String, String>();
params.put("playerName", "Android test");
params.put("playerScore", "3000");
return params;
}
};
HighScoreSingleton.getInstance(context).addToRequestQueue(postRequest);
Для тех, кто может или не может поверить мне в мой код на моей стороне сервера.
app.post('/api/highScore', function(req,res){
var con = mysql.createConnection({
host: "xxxx",
user: "xxxx",
password: "xxxx",
database: "xxxx"
});
if(req.query!=null){ //
console.log(typeof req.query.playerName);
con.query(`INSERT INTO xxxx (playerScore, playerName) VALUES
(${req.query.playerScore}, "${req.query.playerName}" )`, // async, runs callback aka function
function(err,rows){
if(err) throw err;
res.setHeader('Content-Type', 'text/plain');
res.send('Updated High Score');
});
con.end();
}
});
Заранее спасибо, вполне возможно, что я пропускаю что-то очень простое, иначе я просто изменю свой URL в своем StringRequest, поскольку это кажется немного глупым, учитывая метод getParams.