dongqin1167 2012-11-29 21:50
浏览 12
已采纳

如何从php发送变量到Android应用程序?

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.

  • 写回答

2条回答 默认 最新

  • dongzhao1930 2012-11-30 03:42
    关注

    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 + "
    ");
            }
    
            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.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM