【问题标题】:ANDROID - send List to PHP via VOLLEYANDROID - 通过 VOLLEY 将列表发送到 PHP
【发布时间】:2018-02-14 06:52:20
【问题描述】:

您好,我有一个名为 StudentBATCH_LIST 的列表,我使用 csv 中的内容填充了该列表:

    File csvFILE = new File(getFILE_PATH());
    try {
        CSVReader csvREAD = new CSVReader(new 
        FileReader(csvFILE.getAbsolutePath()));
        String[] csvLINE;
        int skip = 0;
        while((csvLINE = csvREAD.readNext())!=null)
        {
            if(skip > 0)//becasue first line is column headers
            {
                String PARAM_USER_ID = csvLINE[0];
                String PARAM_STUD_FIRSTNAME = csvLINE[1];
                String PARAM_STUD_LASTNAME = csvLINE[2];
                String PARAM_STUD_MIDDLENAME = csvLINE[3];
                String PARAM_STUD_EMAIL = PARAM_USER_ID+EMAIL_S;

                AdminAddStudentBATCH_CONFIG STUD_OBJECT = new AdminAddStudentBATCH_CONFIG(PARAM_USER_ID,
                        PARAM_STUD_FIRSTNAME,
                        PARAM_STUD_LASTNAME,
                        PARAM_STUD_MIDDLENAME,
                        PARAM_STUD_EMAIL);
                StudentBATCH_LIST.add(STUD_OBJECT);
            }
            else
            {
                skip ++;
            }
        }

    } catch (FileNotFoundException e) {
        volleyErrorClass.catchInvalidResponse(e.toString(),AdminAddStudentBATCH.this);
    } catch (IOException e) {
        volleyErrorClass.catchInvalidResponse(e.toString(),AdminAddStudentBATCH.this);
    } catch (JSONException e) {
        volleyErrorClass.catchInvalidResponse(e.toString(),AdminAddStudentBATCH.this);
    } catch (IndexOutOfBoundsException e) {
        volleyErrorClass.catchInvalidResponse(e.toString(),AdminAddStudentBATCH.this);
    }

我想知道如何通过 volley 将此列表传递给 PHP。我该怎么做?另外我如何在 PHP 中解码。

无论如何,列表中的值的标签是 USER_ID, STUD_FIRSTNAME, STUD_LASTNAME, STUD_MIDDLENAME, STUD_EMAIL

【问题讨论】:

  • 我想建议你把这个列表转换成JSON对象并发送到服务器。
  • 你应该发送 csv 文件!

标签: php android arraylist android-volley


【解决方案1】:

出于您应用程序的目的,我会将 StudentBATCH_LIST 转换为 JSON 数组,然后在您的 Web api 上反序列化该数组。

以下是简要步骤:

第 1 步。将 Volley 和 GSON 依赖项添加到应用级 build.gradle 文件:

dependencies {
    ...
    compile 'com.android.volley:volley:1.1.0'
    compile 'com.google.code.gson:gson:2.8.2'
}

步骤 2. 使用 GSON 将列表转换为 JSON 数组:

String studentBatchListString = new Gson().toJson(students);

第 3 步。将 studentBatchListString 发布到您的 Web api(“发送到 PHP”)

String url = "http://yourdomain.com/post.php";
StringRequest postRequest = new StringRequest(Request.Method.POST, url, 
    new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            // response
            Log.d("Response", response);
        }
    }, 
    new Response.ErrorListener() {
         @Override
         public void onErrorResponse(VolleyError error) {
             // error
             Log.d("Error.Response", response);
       }
    }
) {     
    @Override
    protected Map<String, String> getParams() {  
            Map<String, String>  params = new HashMap<String, String>();  
            params.put("students_batch_list", studentBatchListString);  
            return params;  
    }
};
queue.add(postRequest);

步骤 4. 在 PHP 端反序列化:

$content = $_POST['students_batch_list'];
$json = json_decode($content, true);
foreach ($json as $key => $value) {
    $firstname = $value["firstname"];
    $lastname = $value["lastname"];
    // perform other actions.
}

【讨论】:

    猜你喜欢
    • 2015-09-29
    • 2013-11-29
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    相关资源
    最近更新 更多