ANDROID&PHP - 如何使用 PHP 从 MySql 显示 JSONArray

2024-01-01

我用来将表的值显示到下面的 JSONArray 中的代码

send_data.php

<?php
include 'dbconfig.php';
$con = new mysqli($servername, $username, $password, $dbname);
if (mysqli_connect_errno())
  {
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

  $query = "select id,ask from pertanyaan";

  $result = mysqli_query($con,$query);

  $rows = array();
  while($r = mysqli_fetch_array($result)) {
    $rows[] =$r;
  }
echo json_encode(array_values($rows));

  mysqli_close($con);
?>

JSONArray 输出就像this http://www.zxccvvv.cuccfree.com/send_data.php

[{"0":"1","id":"1","1":"pertanyaan ke 1","ask":"pertanyaan ke 1"},{"0":"2","id":"2","1":"pertanyaan ke 2","ask":"pertanyaan ke 2"},{"0":"3","id":"3","1":"pertanyaan ke 3","ask":"pertanyaan ke 3"},{"0":"4","id":"4","1":"pertanyaan ke 4","ask":"pertanyaan ke 4"},{"0":"5","id":"5","1":"pertanyaan ke 5","ask":"pertanyaan ke 5"}]

但每次我尝试在 android 中显示该 URL 时,都会收到一条错误消息

Value <html><body<>script of type java.lang.String cannot be converted to JSONArray

但是当我创建具有相同输出的新 API 时here http://www.mocky.io/v2/580c6b89100000f60754044a进入android studio,它工作正常,

我是否使用了错误的代码从 PHP 编码 JSON?


Problem

HttpURLConnection不支持 JavaScript,但需要的 cookie 是使用 JavaScript 生成的。

你的来电

String reqUrl = "http://zxccvvv.cuccfree.com/send_data.php";
URL url = new URL(reqUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

失败,因为 cookie__test不见了。

Fix

乍一看 JavaScript 源代码,cookie 对于给定的 url 似乎是恒定的,因此设置一个 cookie 可能就足够了常量cookie:

String cookie = "__test=2bf7c15501c0ec57f8e41cb84871a69c";

URL url = new URL(reqUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(7000);
conn.setRequestMethod("GET");
conn.setRequestProperty("Cookie", cookie);

选择:使用 WebView 我们可以获取 cookie,所以这是更好的方法,因为如果 cookie 发生变化并且没有太多时间延迟,它不会中断:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getCookie();

    if(cookie!=null) {
        new GetContacts().execute();
    }
}

private void getCookie(){
    CookieManager.setAcceptFileSchemeCookies(true);
    WebView wv = new WebView(getApplicationContext());
    wv.getSettings().setJavaScriptEnabled(true);
    wv.loadUrl(url);
    cookie = CookieManager.getInstance().getCookie("zxccvvv.cuccfree.com");
}

并按照上面的示例进行设置:

conn.setRequestProperty("Cookie", cookie);

logcat 中的输出

Response from url: [{"0":"1","id":"1","1":"pertanyaan ke 1","ask":"pertanyaan ke 1"},{"0":"2","id":"2","1":"pertanyaan ke 2","ask":"pertanyaan ke 2"},{"0":"3","id":"3","1":"pertanyaan ke 3","ask":"pertanyaan ke 3"},{"0":"4","id":"4","1":"pertanyaan ke 4","ask":"pertanyaan ke 4"},{"0":"5","id":"5","1":"pertanyaan ke 5","ask":"pertanyaan ke 5"}]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ANDROID&PHP - 如何使用 PHP 从 MySql 显示 JSONArray 的相关文章

  • php 包含打印 1

    我编写了以下代码 当我将 include 函数与旨在输出到页面的函数 例如 或 echo include foo php 结合使用时 它会返回包含内容 但在已包含的内容后面带有 1 echo include foo php 应该 inclu
  • 从 PHP 启动守护进程

    对于网站 我需要能够启动和停止守护进程 我目前正在做的是 exec sudo etc init d daemonToStart start 守护进程已启动 但 Apache PHP 挂起 做一个ps aux透露sudo它本身变成了僵尸进程
  • 将此 MySQL 查询转换为 PyGreSQL

    我正在开发一个 Ruby 应用程序 它使用 mysql 函数 XOR 和 BIT COUNT 不过 我现在需要在运行 PyGreSQL 的 Heroku 上运行该应用程序 我找不到任何可以帮助我的 PyGreSQL 文档 那么任何人都可以翻
  • 从 Android 访问云存储

    我一直无法找到任何有关如何从 Android 应用程序使用云存储的具体文档 我确实遇到过这个客户端库 https cloud google com storage docs reference libraries然而 Google Clou
  • 如何使用 MotionLayout 调整 TextView 的大小

    我正在尝试创建一个CollapsingToolbar动画使用MotionLayout 我已经成功地将所有内容设置为动画 使其表现得像CollapsingToolbar具有高度的灵活性 这意味着我可以轻松创建很棒的动画 而无需编写大量代码 我
  • 调整 SwipeRefreshLayout 高度,将 View 置于其底部

    I have SwipeRefreshLayout里面一个RelativeLayout 问题是SwipeRefreshLayout占据了屏幕上的所有位置 我需要放置一个视图after这个观点 看图片 https i stack imgur
  • 将触摸事件从 NestedScrollView 传递到父视图

    我在 NestedScrollView 下方有一个 ViewPager 宽度一些顶部填充 以及 ClipToPadding false 和透明背景 如图像 我的 ViewPager 无法获取触摸事件并且无法工作 我怎么解决这个问题 我无法更
  • PHP 何时实现了函数使用闭包? [复制]

    这个问题在这里已经有答案了 我在 PHP 手册中找不到解释的部分use 我有代码 num 0 array walk recursive REQUEST function mValue use num num 我的 Eclipse 抱怨 Pa
  • 分离 Fragment 和删除 Fragment 有什么区别?

    在 Android 文档中碎片交易 http developer android com reference android app FragmentTransaction html我注意到两种非常相似的方法 detach and remo
  • Android 10 请求 ACTIVITY_RECOGNITION 权限

    我试图遵守 Google 的要求 为 Android 10 请求 ACTIVITY RECOGNITION 权限 但我似乎不明白为什么没有显示权限弹出窗口 就像其他权限 即位置 存储等 一样 我的代码是 if ContextCompat c
  • 未知的表引擎“InnoDB”

    最近 我发现如果我有好的硬件 我可以最大限度地提高 mysql 的性能 由于我一直在使用 InnoDB 所以我在 my ini 中添加了额外的配置 以下是新添加的配置 innodb data file path ibdata1 10M au
  • MySQL 和 MariaDB 数据库有什么区别?

    我已经使用 XAMPP 很长时间了 很惊讶 XAMPP 已经从 MySQL 切换到了 MariaDB https www apachefriends org index html https www apachefriends org in
  • 如何在 MySQL 中创建查询以根据日期和独特字段减去连续行?

    基于SQL根据日期和另一列减去两行 https stackoverflow com questions 12310221 sql subtract two rows based on date and another column我有一个好
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • 选择查询不适用于使用Parameters.AddWithValue 的参数

    C 中的以下查询不起作用 但我看不出问题所在 string Getquery select from user tbl where emp id emp id and birthdate birthdate cmdR Parameters
  • 如何检测日期选择器对话框的取消单击?

    我正在使用以下 日期选择器的示例 http developer android com guide tutorials views hello datepicker html http developer android com guide
  • Android - 如何简单地拖放按钮?

    我在这里找到了一个适合初学者的教程 http androidrox wordpress com 2011 05 13 android sample app drag and drop image using touch http andro
  • MySQL 中的 group_concat 性能问题

    我添加了一个group concat到一个查询并杀死了性能 添加之前和之后的解释计划是相同的 所以我对如何优化它感到困惑 这是查询的简化版本 SELECT curRow curRow 1 AS row number docID docTyp
  • Android Volley - 发布请求 - 无法在线工作

    我试图通过 Volley 发出 POST 请求 它在我的本地主机中工作得很好 但是当我将它移动到网络服务器时 响应为空 Java代码 RequestQueue queue Volley newRequestQueue this String
  • 在 Qt 中构建 Android 项目不再有效

    所以我对 Android SDK NDK 和 Apache Ant 进行了一些更新 现在我无法构建任何 Android 项目 我收到一条警告 然后它说找不到 build xml 文件 错误 Warning Android platform

随机推荐

  • 如何在 Networkx / Graphviz 中绘制平行边

    我尝试使用 NetworkX 在两个节点之间添加平行边 但失败并出现以下错误 我究竟做错了什么 import networkx as nx import graphviz g1 nx MultiGraph node1 a node2 b g
  • 如何从 RxJS 地图运算符(角度)引发错误

    我想从我的可观察对象中抛出一个错误map基于条件的运算符 例如 如果未收到正确的 API 数据 请看下面的代码 private userAuthenticate email string password string return thi
  • 对数据框中的随机行进行采样

    我正在努力寻找合适的函数来返回从 R 语言的数据框中随机选取的指定行数而不进行替换 谁能帮我吗 Answer recommended by R Language collectives r language Collective 首先做一些
  • Farmville 等在线游戏使用什么数据库? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkState(ZLjava/lang/String;) 与 Selenium、gradle 和 ChromeDrive

    我正在尝试将 Selenium api 与 Gradle 一起使用 这是我的 build gradle 依赖部分 dependencies compile com google api client google api client 1
  • TortoiseSVN 樱桃采摘

    我即将将主干中的某些修订合并到发布分支中 我用 mergeinfo 检查了有多少修订符合合并条件 结果是 42 尽管检查每个修订日志并决定是否应该合并它绝对是可能的并且不太难 然后我会使用 TortoiseSVN 检查日志并使用命令行svn
  • 将VB的Val转换为Java?

    如何使用Java编程语言实现VB的Val 函数或者是否有具有相同方法的API 你应该使用Integer parseInt http java sun com javase 6 docs api java lang Integer html
  • 如何为命令的所有选项启用无密码 sudo?

    我想启用无密码 sudosudo apt update 并且还可以使用无密码 sudo 工作apt update当我使用以下选项运行它时命令sudo apt update q and sudo apt update qq 我有文件 etc
  • windows下一个软件至少有多少堆

    我发现 C 运行时有自己的堆 以及 windows HeapWalk 下的所有堆 API 就我之前的知识而言 我有点麻烦 因为看起来一个进程实际上有几个堆 而不仅仅是一个堆 这样对吗 如果是这样的话 为什么需要几个堆呢 一个Windows进
  • ClassNotFoundException:使用 kafka 主题时出现 org.apache.flink.streaming.api.checkpoint.CheckpointNotifier

    我正在使用最新的 Flink 1 1 2 Hadoop 27 和 flink connector kafka 0 10 2 hadoop1 jar Flink消费者如下 StreamExecutionEnvironment env Stre
  • 在 C 中检查全零缓冲区的更快方法?

    我正在寻找一种更快的方法来完成此任务 int is empty char buf int size int i for i 0 i lt size i if buf i 0 return 0 return 1 我意识到我正在寻找一种不必要的
  • glTexImage2D 的 android 位图像素格式

    我正在尝试使用 Bitmap 类从 Java 加载纹理以与 NDK OpenGL 一起使用 它有效 但我在像素格式方面遇到问题 首先 在 Java 中 我从资产文件夹中加载位图 如下所示 Bitmap bitmap BitmapFactor
  • iOS 打印 UI - 限制份数

    是否可以限制允许用户打印的份数 来自代码 一句话 不 这不会在公共 API 中公开 如果您想在未来版本的 iOS API 中看到此功能 您应该在 bugreport apple com 上提交功能请求
  • 替代 if、else if

    我有很多 if else if 语句 我知道必须有更好的方法来做到这一点 但即使在搜索 stackoverflow 之后 我也不确定在我的特定情况下如何做到这一点 我正在解析文本文件 账单 并根据账单上是否出现某些字符串将服务提供商的名称分
  • 为 Pong 游戏创建 AI + 对速度算法的基本了解

    我正在为我的软件开发课程制作一个乒乓球游戏 我可能应该说这是家庭作业 因此我的理解有限 我在为 NPC 桨创建 AI 时遇到一些问题 我正在使用 Kivy 和 Python 目前我可以创建不可能被击败人工智能通过这样做 ai self pl
  • CSS 主体背景图像即使在放大/缩小时也固定为全屏

    我正在尝试用 CSS 来实现这样的目标 我想将身体背景图像固定在全屏上 这是通过以下代码完成的 body background url img beach jpg no repeat fixed 100 100 现在我可以验证窗口确实充满了
  • 蒙面文本框钱

    在 C 中 我使用这个mask 999 999 00 但我需要将数字显示为 123 123 12 如果我想输入 99 00 我需要执行 000099 00 我不想这样做 如果我使用这个 99 00 我无法给出 100 00 美元的数字 我怎
  • 在 ng-repeat 之后运行的指令

    我也有类似的问题ng repeat 完成后调用函数 https stackoverflow com questions 15207788 calling a function when ng repeat has finished但我里面有
  • iOS 9.0,Xamarin Studio,“正在等待调试器连接...”

    我一直在使用Xamarin iOS成功地使用带有 iOS 8 3 模拟器的 iPad 平台 直到我用 iOS 9 0 更新了 Xcode 7 当我选择模拟器并运行它时 它不断显示 等待调试器连接 最后什么也没有出现 有什么解决办法吗 顺便问
  • ANDROID&PHP - 如何使用 PHP 从 MySql 显示 JSONArray

    我用来将表的值显示到下面的 JSONArray 中的代码 send data php