【发布时间】:2017-12-09 06:34:36
【问题描述】:
我正在尝试从一个 android 应用程序调用一个网站上的 php 函数。
我正在使用它来获得我的回复:https://github.com/koush/ion
这是我的 php 代码,位于:Link 它用于连接到我在该站点上的数据库。 php 文件只是将数据库中的所有条目作为 php 代码下显示的 HTML 文本返回(不确定这是否是从数据库获取数据的正确方法)。 数据库条目有自己的标签,因此我可以稍后在应用程序中处理它们。
<?php
include('dbconnect.php');
if (isset($_GET['Tabela'])) {
DobiPodatke($_GET['Tabela']);
} else {
ECHO '<error>Ni selekcije</error>';
}
function DobiPodatke($Tabela)
{
$sqlget = "SELECT * FROM " . $Tabela;
ZazeniQuery($Tabela, $sqlget);
}
function ZazeniQuery($Ime, $Query){
$sqldata = mysqli_query($GLOBALS['dbcon'], $Query) or die('<error>error with fetching data</error>');
ECHO '<' . $Ime . '>';
while($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)){
switch($Ime){
case 'Sola':
ECHO '<vnos><Kratka_Oznaka>' . $row['Kratka_Oznaka'] . '</Kratka_Oznaka><Ime>' . $row['Ime'] . '</Ime></vnos>';
break;
case 'Stroka':
ECHO '<vnos><Ime_Stroke>' . $row['Ime_Stroke'] . '</Ime_Stroke></vnos>';
break;
case 'Sola_Smer':
ECHO '<vnos><ID_Sole>' . $row['ID_Sole'] . '</ID_Sole><ID_Stroke>' . $row['ID_Stroke'] . '</ID_Stroke><Stevilo_mest>' . $row['Stevilo_mest'] . '</Stevilo_mest></vnos>';
break;
}
}
ECHO '</' . $Ime . '>';
}
?>
HTML 响应: HTML
现在为了让它工作,我需要提供我需要从哪个表中获取信息的 php 函数参数,所以我这样称呼它:
https://illegible-deflector.000webhostapp.com/Site3/dbtest.php?Tabela=Sola
Tabela beeing 我需要传入的变量,否则 php 会执行 die()
在上面的示例中,我调用了末尾带有“?Tabela=Sola”的 php 文件,以获取表“Sola”中的所有表条目。 虽然这适用于浏览器,但它不适用于我的应用程序。
现在在我的 android 应用程序中,我使用 Ion 库/类以纯 HTML 代码从网站获取响应。它适用于常规网站,因为我可以从该网站获取整个 HTML 代码。
但是它在我的 php 网站上不起作用,因为我得到一个空结果。
以下代码中的链接变量为:
https://illegible-deflector.000webhostapp.com/Site3/dbtest.php?Tabela=Sola
连接网站并返回结果的Java代码:
private static void ParseDBFront(String link, Context context){
Ion.with(context).load(link).setLogging("MyLogs", Log.DEBUG).asString().setCallback(new FutureCallback<String>() {
@Override
public void onCompleted(Exception e, String result) {
Log.i("LOG", "LOG: " + result);
}
});
}
而我在运行时从上面的代码得到的响应是:
I/LOG: LOG: 空
我只需要让 java 代码返回 HTML 代码,但我不知道为什么它不会返回 html 代码。 我猜我正在以错误的方式解析我的变量。
感谢您对此问题的任何反馈或解决方案。
【问题讨论】:
-
每次我运行和安装apk并从服务器请求数据到模拟器时,我也会得到这个null。但是当我第二次提出请求时就可以了。
-
@Md.SojibAhmed 你能否进一步解释一下你究竟做了什么来让它处理第二个请求?