Я хочу вызвать URL, где PHP Script написан на сервере, который возвращает мне ошибку или успех после сравнения пароля пользователя, но когда я нажимаю кнопку отправки, это дает мне эту ошибку
com.pace.testformwithonline E/Response error:
com.android.volley.ParseError: org.json.JSONException: Value Error of type
java.lang.String cannot be converted to JSONObject
пакет com.pace.testformwithonline;
import android.app.Activity;
import android.app.DownloadManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends Activity {
private EditText username;
private EditText password;
private Button btnSubmit;
private TextView result;
private static final String URL="http://pace-tech.com/nomi/zaigham/android.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
username=(EditText)findViewById(R.id.editText_username);
password= (EditText) findViewById(R.id.editText_password);
btnSubmit=(Button)findViewById(R.id.btn_submit);
result=(TextView)findViewById(R.id.text_result);
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
result.setText("");
postJsonobjectRequest(URL);
}
});
}
public void postJsonobjectRequest(String url){
JSONObject params=new JSONObject();
RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
try {
params.put("username", username.getText().toString());
params.put("password", password.getText().toString());
}
catch (JSONException e){
e.printStackTrace();
}
JsonObjectRequest jsOBJRequest=new JsonObjectRequest
(Request.Method.POST, URL, params, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// Log.e("Response is",response.toString());
try {
Log.e("Response is",response.toString());
String Success = response.getString("Success").toString();
String Message = response.getString("Message").toString();
if(Success=="0") {
result.setText(Message);
}
else {
Toast.makeText(getApplicationContext(),Message,Toast.LENGTH_LONG);
}} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Response error",error.toString());
result.setText("Error Is :"+ error.toString());
}
});
queue.add(jsOBJRequest);
}
}
Вот сценарий PHP
<?php
$username = "zaigi";
$password = "1111";
$androidUserName = json_decode($_POST['username']);
$androidPassword = json_decode($_POST['password']);
if($androidUserName == $username && $androidPassword == $password){
$response = "Correct";
}else{
$response = "Error";
}
echo json_encode($response);
?>
Это ошибка синтаксического анализа, это означает, что залп не может проанализировать ответ, поступающий с вашего сервера, поэтому, пожалуйста, проверьте строку ответа, в правильном формате JSON или нет? Вы можете проверить строку ответа Вот если это правильный JSON или нет.
я знаю эту проблему. это случается со мной однажды.
Используйте StringRequest вместо JsonObjectRequest.
это ошибка. параметры не передаются в JsonObjectRequest.
пожалуйста, обратитесь по этой ссылке для более
Volley JsonObjectRequest Отправить запрос не работает
вы получите Response как String, а затем конвертируете его в JSONObject.
В PHP SCRIPT сделайте что-то вроде этого ..
$data = file_get_contents('php://input');
$json = json_decode($data);
//username and password sent from android
$username=$json->{'username'};
$password=$json->{'password'};$androidUserName = $username;
$androidPassword = $password;
if($androidUserName == $myusername && $androidPassword == $mypassword){
$response = array('result' => "Correct");
}else{
$response = array('result' => $androidUserName,'password' => $androidPassword);
}
header('Content-type: application/json');
echo json_encode($response);