2

大家好,我当前的 android 应用程序中有一个活动,其中有一个 webview。我想知道如何从该网站上的 php 中获取变量并将其存储到我的 android 应用程序上的变量中(是的,我控制了网站,并具有完整的编辑功能)。

4

2 回答 2

5

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)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) 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.
} 

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.

于 2012-11-30T03:42:58.357 回答
0

您的 android 应用程序需要在您设置 PHP 脚本以返回所需数据的 URL 处向您的 PHP 应用程序发出请求。

您可以直接返回 HTML,或者如果您只想返回数据并让您的 Android 应用程序返回,JSON 是一种出色的数据传输格式。XML 也很流行,但 JSON 更精简,并且现在有很好的支持。

于 2012-11-29T22:18:04.717 回答