android - android中通过url传递多个参数并在PHP中获取

标签 android mysql sqlite

在我的 Android 应用程序中,我已使用 JSON over AsyncHttp 协议(protocol)将 sqlite 数据传递到远程 mysql 数据库。
现在我想要从 Mysql 数据库到 SQLite 数据库的数据,以便从服务器获取数据并将其转换为 JSON。
由于服务器有很多行数据,我只需要获取我的手机 SQLite 数据,以便我需要传递变量并检查数据是否是我的,而不是获取所有用户数据。

如何传递 url 中的变量,以便在仅获取时搜索我的用户数据并将其插入 SQLITE 数据库。
这是我的代码

public void syncMySQLDBSQLite(){
            // Create AsycHttpClient object
            AsyncHttpClient client = new AsyncHttpClient();
            // Http Request Params Object
            RequestParams params = new RequestParams();
            // Show ProgressBar
            prgDialog.show();
            // Make Http call to getusers.php
            client.post("http://10.0.2.2/tafapps/getuser.php", params, new AsyncHttpResponseHandler() {
                    @Override
                    public void onSuccess(String response) {
                        // Hide ProgressBar
                        prgDialog.hide();
                        // Update SQLite DB with response sent by getusers.php
                        updateSQLite(response);

                    }
                    // When error occured
                    @Override
                    public void onFailure(int statusCode, Throwable error, String content) {
                        // TODO Auto-generated method stub
                        // Hide ProgressBar
                        prgDialog.hide();
                        if (statusCode == 404) {
                            Toast.makeText(getApplicationContext(), "Requested resource not found", Toast.LENGTH_LONG).show();
                        } else if (statusCode == 500) {
                            Toast.makeText(getApplicationContext(), "Something went wrong at server end", Toast.LENGTH_LONG).show();
                        } else {
                            Toast.makeText(getApplicationContext(), "Unexpected Error occcured! [Most common Error: Device might not be connected to Internet]",
                                    Toast.LENGTH_LONG).show();
                        }
                    }
            });
        }

         public void updateSQLite(String response){
                ArrayList<HashMap<String, String>> usersynclist;
                usersynclist = new ArrayList<HashMap<String, String>>();
                // Create GSON object
                Gson gson = new GsonBuilder().create();
                try {
                    // Extract JSON array from the response
                    JSONArray arr = new JSONArray(response);
                    Toast.makeText(getApplicationContext(), response, 5000).show();
                    System.out.println(arr.length());
                    // If no of array elements is not zero
                    if(arr.length() != 0){
                        // Loop through each array element, get JSON object which has userid and username
                        for (int i = 0; i < arr.length(); i++) {
                            // Get JSON object
                            JSONObject obj = (JSONObject) arr.get(i);
                            System.out.println(obj.get("userId"));
                            System.out.println(obj.get("userName"));
                            db = this.openOrCreateDatabase("Hangman", MODE_PRIVATE, null);

                           // String id =  obj.get("userId").toString();
                             name =  obj.get("userName").toString();
                             email = obj.get("userEmail").toString();
                             phn = obj.get("userPhnum").toString();
                             plyd = obj.get("userPlayed").toString();
                             crct = obj.get("userCorrect").toString();
                            //Toast.makeText(getApplicationContext(), email, 5000).show();

                            db.execSQL("insert into scores(userName,userEmail,userPhnum,userPlayed,userCorrect)values('"+name+"','"+email+"','"+phn+"','"+plyd+"','"+crct+"')");
                        }
                        //Toast.makeText(getApplicationContext(), ""+queryValues, 5000).show();
                        // Inform Remote MySQL DB about the completion of Sync activity by passing Sync status of Users
                        updateMySQLSyncSts(gson.toJson(usersynclist));
                    }
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

最佳答案

使用 HTTP GET 或 POST 请求。 带参数的 GET 示例: http://example.com/tafapps/getuser.php?user=user1&user_age=21

在 POST 请求中,此参数在 URL 中不可见,而是在请求正文中进行编码。

您可以使用parse_url()和parse_str()进行解析:

$parts = parse_url($url);
parse_str($parts['query'], $query);
echo $query['user'];

或者据我所知更好:

$user = $_GET['user']

PHP Manual: Predefined _GET variable

关于android - android中通过url传递多个参数并在PHP中获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25639649/

相关文章:

java - 相机与抽屉导航重叠 - Android

android - 如何保护 Android 应用程序中的 key ?

android - 数据库锁定错误sqlite android

sqlite - Liquibase和SQLite

python - 如何将列表变量从元组转换为字符串

c# - C# 中的简单 SQLite ORM,代码可以工作,但如何解决竞争条件

java - 为什么 textview 中的换行符会导致换行符缩进?

mysql - 将多行连接到一个单元格中的 SQL 命令?

php - php 中 if 中只允许管理员执行的代码是否受到保护?

mysql - 编译 Perl 的 DBD::mysql 时如何修复 "Symbol not found: _is_prefix"?