我作为一名PHP开发人员(中级)工作,并在家中练习一些安卓系统的东西。将Android ArrayList的内容发送到PHP
我已经创建和数组列表,它将获取到我的Android应用程序中的sqlite数据库并填充ListView。现在我正试图进一步提高这个水平。
我想将该数组列表内容发送到我的PHP服务器,我可以将给定的数据存储到mysql中并将数据提取回我的应用程序。
我该如何去做到这一点?
我作为一名PHP开发人员(中级)工作,并在家中练习一些安卓系统的东西。将Android ArrayList的内容发送到PHP
我已经创建和数组列表,它将获取到我的Android应用程序中的sqlite数据库并填充ListView。现在我正试图进一步提高这个水平。
我想将该数组列表内容发送到我的PHP服务器,我可以将给定的数据存储到mysql中并将数据提取回我的应用程序。
我该如何去做到这一点?
您可以使用JSON或XML从Android发送数据到php服务器。 在PHP方面,您所需要的只是内置的json_decode,它将反序列化您的json并返回一个对象或关联数组。
为此,您必须在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();
这里样品[]是其中i的分配数组值上的服务器发送的字段。从服务器端您必须获取示例[]字段。
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();
}
我有多个arraylist,那么我怎么能在列表
正是我要说的话。我发现Android OS中包含的JSON或XML支持非常好,要么会为你工作,并允许沟通。请记住,您需要获得访问ApplicationManifest.xml中的网络操作的权限,并且您需要通过默认的http对象发送JSON或XML。 – 2011-03-12 07:06:17