我是一名PHP开发人员(中级),并且在家里练习一些Android内容。
我创建了一个数组列表,它将在我的Android应用程序中获取一个sqlite数据库并填充一个ListView。现在我想进一步采取这一级别。
我想将该数组列表内容发送到我的PHP服务器,在那里我可以将给出的数据存储到mysql中并获取回我的应用程序。
我将如何实现这一目标?
答案 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();
}