将Android ArrayList的内容发送到PHP

时间:2011-03-12 06:54:26

标签: php android arraylist

我是一名PHP开发人员(中级),并且在家里练习一些Android内容。

我创建了一个数组列表,它将在我的Android应用程序中获取一个sqlite数据库并填充一个ListView。现在我想进一步采取这一级别。

我想将该数组列表内容发送到我的PHP服务器,在那里我可以将给出的数据存储到mysql中并获取回我的应用程序。

我将如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

您可以使用JSON或XML将数据从android发送到php服务器。 在PHP方面,您只需要内置的json_decode,它将反序列化您的json并返回一个对象或一个关联数组。

答案 1 :(得分:1)

为此,您必须在php服务器上发布数据,然后获取该数据并存储到您的数据库中。

这里我附上一个在服务器上发送数据并在json中获取响应的示例。

                    HttpPost postMethod = new HttpPost("Your Url");
                    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();


                    // test is a one array list

                    for(int i=0;i<test.size();i++)
                    {
                        nameValuePairs.add(new BasicNameValuePair("sample[]", Integer.toString(test.get(i))));
                    }

                    postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                    DefaultHttpClient hc = new DefaultHttpClient();

                    HttpResponse response = hc.execute(postMethod);
                    HttpEntity entity = response.getEntity();

                    // If the response does not enclose an entity, there is no need
                    // to worry about connection release

                    if (entity != null) 
                    {
                        InputStream inStream = entity.getContent();
                        result= convertStreamToString(inStream);
                        jsonObject = new JSONObject(result);
                        responseHandler.sendEmptyMessage(0);
                    }
                }
                catch(Exception e)
                {
                    e.printStackTrace();
                }
            }
        }.start();

这里sample []是一个字段,我在其中指定要在服务器上发送的数组值。从服务器端,您必须获取sample []字段。


public static String convertStreamToString(InputStream is)
{
   BufferedReader reader = new BufferedReader(new InputStreamReader(is));
   StringBuilder sb = new StringBuilder();

   String line = null;
   try 
   {
       while ((line = reader.readLine()) != null) 
       {
           sb.append(line + "\n");
       }
   } 
   catch (IOException e) 
   {
       e.printStackTrace();
   } 
   finally 
   {
       try 
       {
           is.close();
       } 
       catch (IOException e) 
       {
           e.printStackTrace();
       }
   }
   return sb.toString();

}