Привет, ребята, есть активность в моем текущем приложении для Android, в котором есть веб-просмотр. Мне было интересно, как я могу взять и сохранить переменную от php на этом веб-сайте (да, я управляю веб-сайтом и имею полные возможности редактирования) в переменной в моем приложении для Android.
Я бы объяснил, что нужно делать в целом. Во-первых, на стороне приложения для Android должно быть что-то вроде этого.
1) На стороне вашего андроида
String url = "www.yoururl.com/yourphpfile.php"; List<NameValuePair> parmeters = new ArrayList<NameValuePair>(); parameters.add(new BasicNameValuePair("category",category)); parameters.add(new BasicNameValuePair("subcategory",subcategory));// These are the namevalue pairs which you may want to send to your php file. Below is the method post used to send these parameters DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); // You can use get method too here if you use get at the php scripting side to receive any values. httpPost.setEntity(new UrlEncodedFormEntity(parameters)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); // From here you can extract the data that you get from your php file.. StringBuilder builder = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { builder.append(line + "\n"); } is.close(); json = sb.toString(); // Here you are converting again the string into json object. So that you can get values with the help of keys that you send from the php side. String message = json.getString("message"); int success = json.getInt("success"); // In this way you again convert json object into your original data.
2) На вашей стороне php
$response = array(); // check for post fields if (isset($_POST['category']) && isset($_POST['subcategory'])) { $category = $_POST['category']; $subcategory = $_POST['subcategory']; // include db connect class require_once __DIR__ . '/db_connect.php'; // connecting to db $db = new DB_CONNECT(); // mysql inserting a new row $result = mysql_query("INSERT INTO categorytable(category, subcategory) VALUES('$category', '$subcategory')"); // check if row inserted or not if ($result) { // successfully inserted into database $response["success"] = 1; $response["message"] = "Data inserted into database."; // echoing JSON response echo json_encode($response);// Here you are echoing json response. So in the inputstream you would get the json data. You need to extract it over there and can display according to your requirement. }
Как вы сказали, вы достаточно разбираетесь в php, вы могли бы обнаружить, что вышеуказанные вещи в php сделаны максимально простыми и не защищены. Таким образом, вы можете следить за некоторыми pdo или другими защищенными способами кода на стороне php. Убедитесь, что вы окружаете код на стороне вашего Android в asynctask, чтобы работать в отдельном потоке, где вам нужно. Надеюсь это поможет.
Вашему приложению Android нужно сделать запрос к вашему PHP-приложению, по URL-адресу, где вы настраиваете PHP-скрипт для возврата необходимых вам данных.
Вы можете либо вернуть прямой HTML, либо просто хотите вернуть данные и позволить своему Android-приложению, JSON – отличный формат передачи данных. XML также популярен, но JSON является более компактным и имеет хорошую поддержку в наши дни.