gpt4 book ai didi

php - Android 如何从数组创建一个 json 并发送到 php 服务器

转载 作者:行者123 更新时间:2023-11-29 17:33:41 24 4
gpt4 key购买 nike

我正在开发一个生成安装应用程序列表并创建 json 并将 json 发送到我的 php 服务器的应用程序。在 php 服务器上,我必须获取所有数据并相应地处理它。

这是生成已安装应用程序列表的代码:

List<PackageInfo> apps = getPackageManager().getInstalledPackages(PackageManager.GET_META_DATA);

ArrayList<String[]> aux = new ArrayList();

for (int i = 0; i < apps.size(); i++)
{
if (apps.get(i).versionCode != 0 && ((apps.get(i).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 1))
{
String[] temp = new String[2];

String name = apps.get(i).packageName;
String versionName = apps.get(i).versionName;
temp[0] = name;
temp[1] = versionName;
aux.add(temp);
}
}

这是将它以 json 形式发送到 php 服务器的代码:

try
{
JSONObject obj = new JSONObject();
obj.put("Applications", aux);
URL url = new URL(IPClass.SERVERPath + "update.php");

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(15000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");

OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
//OutputStreamWriter writer = new OutputStreamWriter(os);

writer.write(String.valueOf(aux));
writer.flush();
writer.close();
os.close();


InputStream input = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
StringBuilder result = new StringBuilder();
String line;

while ((line = reader.readLine()) != null) {
result.append(line);
}
Log.d("doInBackground(Resp)", result.toString());

}
catch(Exception ex)
{
Log.d("Ex", ex.toString());
}

问题是 json 没有正确生成,其次我如何在 php 服务器上获取它!

请帮忙!谢谢

最佳答案

它会很好地工作。

JSONArray installedList = new JSONArray();
for (int i = 0; i < apps.size(); i++)
{
if (apps.get(i).versionCode != 0 && ((apps.get(i).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 1))
{
String name = apps.get(i).packageName;
String versionName = apps.get(i).versionName;
JSONObject installedPackage = new JSONObject();
installedPackage.put("name", name);
installedPackage.put("versionName", versionName);
installedList.put(installedPackage);
}
}
String dataToSend = installedList.toString();

添加此行不会神奇地将您的数组转换为 JSON 格式。

conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");

您必须创建 JSONArray 或 JSONObject。我建议您使用 JSONObject 创建 JSONArray。

关于php - Android 如何从数组创建一个 json 并发送到 php 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31668634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com