#java #php #android-studio #post #android-volley
#Ява #php #android-студия #Публикация #android-залп
Вопрос:
Я уже некоторое время пытаюсь заставить эту систему работать, но, похоже, мне чего-то не хватает или они расположены в неправильном порядке. Система выглядит следующим образом: Android Studio (мобильное приложение), внешняя база данных (на хосте), php-файлы на этом хосте для подключения к базе данных.
Поэтому я хочу, чтобы в тот момент, когда кто-то попытается войти в наше мобильное приложение, Android studio отправит заполненные данные в файл php. Файл php использует эти данные для выполнения запроса и возвращает массив JSON в Android studio, после этого я могу использовать возвращенные данные для различных целей, таких как проверка входа, отображение того, кто вошел в систему и т.д.
Я думаю, что я близок, но либо что-то неуместно, либо чего-то не хватает (я знаю, что ошибка, которую он в настоящее время выдает, — это неопределенные индексы, и я думаю, что причина этого в том, что сначала я публикую данные (запускает php, получает результат), а затем запускаю getJSON (снова запускает код без поста, поэтому у него нет индексов)). это то, что я думаю, происходит, но я, кажется, не могу это исправить.
Большое спасибо всем, кто тратит свое время на изучение этого вопроса.
С уважением,
Mikyboy686
Код:
public class MainActivity extends AppCompatActivity { private EditText etUsername, etPassword; private TextView tvTester; private Button btnLogin; RequestQueue Queue; String[] loginchecklist; String url = "url to my php file"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Queue = Volley.newRequestQueue(getApplicationContext()); //sets the EditText etUsername = findViewById(R.id.etUsername); etPassword = findViewById(R.id.etPassword); //sets the Button btnLogin = findViewById(R.id.btnLogin); tvTester = findViewById(R.id.tvTester); //gets the json result from the database request btnLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String username = etUsername.getText().toString(); String password = etPassword.getText().toString(); if (username.isEmpty()) { etUsername.setError("Vul een username in "); etUsername.requestFocus(); } if (password.isEmpty()) { etPassword.setError("Vul een wachtwoord in "); etPassword.requestFocus(); } StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listenerlt;Stringgt;() { @Override public void onResponse(String response) { } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }) { @Override protected Maplt;String, Stringgt; getParams() throws AuthFailureError { Maplt;String, Stringgt; param = new HashMaplt;String, Stringgt;(); param.put("username2", etUsername.getText().toString()); param.put("password2", etPassword.getText().toString()); return param; } }; Queue.add(request); getJSON("url to my php file"); //Toast.makeText(getApplicationContext(), "De ingevulde combinatie bestaat niet, probeer het opnieuw2.", Toast.LENGTH_LONG).show(); } }); } private void getJSON(final String urlWebService) { class GetJSON extends AsyncTasklt;Void, Void, Stringgt; { @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); try { Logincheck(s); } catch (JSONException e) { e.printStackTrace(); } } @Override protected String doInBackground(Void... voids) { try { URL url = new URL(urlWebService); HttpURLConnection con = (HttpURLConnection) url.openConnection(); StringBuilder sb = new StringBuilder(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream())); String json; while ((json = bufferedReader.readLine()) != null) { sb.append(json "n"); } return sb.toString().trim(); } catch (Exception e) { return "" ; } } } GetJSON getJSON = new GetJSON(); getJSON.execute(); } //GETJSON END //function that catches the JSON from my php file private void Logincheck(String json) throws JSONException { JSONArray jsonArray = new JSONArray(json); loginchecklist = new String[jsonArray.length()]; for(int i = 0; ilt;jsonArray.length(); i ){ JSONObject obj = jsonArray.getJSONObject(i); String customeremail = obj.getString("customerEmail"); String customerpassword = obj.getString("customerPassword"); String customercompany = obj.getString("customerCompany"); String customerusername = obj.getString("customerUsername"); tvTester.setText(customerusername); } } } //MAINACTIVITY END