如何从PHP发送变量Android应用程序?变量、应用程序、PHP、Android

2023-09-05 04:14:24 作者:迩的笑是我的榮耀.

大家好有我目前的Andr​​oid应用程序,中有一个web视图的活动。我想知道我怎么可以采取,并从该网站上的PHP存储变量(是的,我控制的网站,并有充分的编辑功能)插入我的Andr​​oid应用程序中的变量。

Hi guys there is an activity on my current android app that has a webview in it. I was wondering how I could take and store a variable from the php on that website (yes I control the website, and have full editing capabilities) into a variable on my android app.

推荐答案

我会解释的事情需要在一般的进行。首先,在你的Andr​​oid应用程序方面,应该有code这样的事情。

I would explain the things need to be done in general. First, at your android app side, there should be code something like this.

1)在你的android端

1)At your android side

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端

2) At your php side

$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或其他担保方式,code在PHP端。请确保您以在单独的线程中运行,无论你需要围绕code在你的android侧AsyncTask的。希望这有助于。

As you said you are fairly proficient in php, you might have found that the above things in php made as simple as possible and It's not secured. So, you can follow some pdo or some other secured ways to code at php side. Make sure you surround the code at your android side in asynctask in order to run in separate thread wherever you need. Hope this helps.