Я пытаюсь создать страницу входа, используя залп на Android.
Запрос работает нормально с GET, но я получаю ошибку с POST.
Я рассмотрел много подобных вопросов здесь, но ни один не решил мою проблему.
Мой код Java:
final String username = user_name.getText().toString();
final String password = pass_word.getText().toString();
String url = "http://192.168.2.6/api_test/login.php";
final StringBuilder resp = new StringBuilder();
resp.append("Response: ");
final ProgressDialog pDialog = new ProgressDialog(this);
pDialog.setMessage("Please wait...");
pDialog.show();
//RequestQueue queue = Volley.newRequestQueue(this);
JsonObjectRequest req = new JsonObjectRequest(Request.Method.POST,url,null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try{
resp_txt.setText("Response is : " + response.toString());
}
catch (Exception ex){
resp_txt.setText("Error");
}
pDialog.hide();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
resp_txt.setText(error.toString());
pDialog.hide();
}
}){
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("username", username);
params.put("password", password);
return params;
}
};
И мой PHP-код:
class response{
public $name = "";
}
$e = new response();
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysqli_query($con,"SELECT name FROM users where username='$username' and password='$password'");
header('Content-Type: application/json;charset=utf-8');
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$e->name = $row["name"];
echo json_encode($e);
}
}
else{
echo "false";
}
Я получаю ошибку:
ParseError: org.json.JSONException: Value <br of type java.lang.String cannot be converted into JSON object.
Он отлично работает с GET.
Задача ещё не решена.
Других решений пока нет …