1

我有一个连接到托管数据库以获取数据的 android 应用程序。

在本地主机上进行测试时,一切正常。

几天前,我将数据库移至托管服务器,在尝试运行应用程序时,它在从数据库获取数据时抛出错误。

错误:

08-19 06:57:28.579: E/JSON Parser(32067): Error parsing data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject

<!DOCTYPE不是数据库中任何表中的值(我已经检查并仔细检查过)。相反,<!DOCTYPE是“index.html”文件中的第一行,它也托管在同一台服务器上。

应用程序使用的 url 是:http://ipaddress/filename.php.

在阅读网络托管公司提供的文档时,我记得读过一些“服务器将 index.html 视为此目录的主页或默认页面”的内容。基本上,当我输入“www.someaddress.com”或其 IP 时,它会返回 index.html。我猜当应用程序 ping url 中提供的 IP 地址时,会返回 index.html 文件(甚至可能吗?)。

问题是,我该如何解决这个问题?有没有人遇到过同样的问题?

提前致谢。

4

1 回答 1

2

我解决了这个问题。我的猜测是正确的:正在返回 index.html 文件,并且 json 解析器试图将其转换为 jsonobject 并因此出现错误。

但这是由于我应该检查的另一个问题而发生的:

android 应用程序http://ipaddress/filename.php用于从服务器获取数据。当我尝试在浏览器上使用相同的 url 时,它返回403 forbidden. 我用它替换了 url,www.sitename.com/filename.php它按预期返回了一个 json 响应。

在将应用程序中的所有 url 替换为匹配www.sitename.com/filename.php而不是 之后http://ipaddress/filename.php,它开始正确获取数据。

由于某种原因,当我http://sitename.com/filename.php在 android 应用程序中使用时,它也返回 index.html。我必须全部替换http://www.才能正常工作。

感谢 SteAp 的帮助!

于 2013-08-19T02:46:49.047 回答