我想从我的android应用程序中连接到一个数据库,并找到了一个教程来实现这一点(链接到教程)。
当我在仿真器中使用它时,它工作得很好,但是当我试图在我的手机上使用它时,它就不能工作了。我尝试了一个WAMP服务器,我已经把它的端口转发,我已经尝试了一个真正的网络主机(000网络主机)。从模拟器到电话的唯一区别是URL,在这里我必须提供一个公共IP地址,而不是10.0.2.2。我也尝试了本地IP的计算机托管WAMP服务器。我知道有些网络主机会在代码中添加广告,但我很确定WAMP不会这么做。
当我使用手机时,我从LogCat中得到以下错误:
Error parsing data org.json.JSONException: Value <html> of type java.lang.String cannot be converted to JSONObject更新1:
我尝试过使用cURL来检查返回的内容。它返回了很多(标题、bgcolor等),但我认为这很有趣:
Access denied for user 'root'@'localhost' (using password: NO) in C:\wamp\www\android_connect\db_connect.php on line <i>28</i></th></tr>它似乎无法访问数据库,但我可能错了?
当我使用cURL访问本地主机时,它会从数据库返回正确的项,而不是像带有公共IP的服务器那样返回所有的html代码。
更新2:
我解决了公共WAMP服务器的问题。我是个菜鸟,忘了我用密码设置了服务器。
但是,当我从浏览器中使用webhost (000webhost)时,我仍然会得到以下错误:
PHP Error Message
Warning: require_once(__DIR__/db_connect.php) [function.require-once]: failed to open stream: No such file or directory in /home/a7471305/public_html/android_connect/get_all_products.php on line 12
Free Web Hosting
PHP Error Message
Fatal error: require_once() [function.require]: Failed opening required '__DIR__/db_connect.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/a7471305/public_html/android_connect/get_all_products.php on line 12
Free Web Hosting我从cURL那里得到了这个错误:
<b>Fatal error</b>: require_once() [<a href='function.require'>function.require
</a>]: Failed opening required '__DIR__/db_connect.php' (include_path='.:/usr/li
b/php:/usr/local/lib/php') in <b>/home/a7471305/public_html/android_connect/get_
all_products.php</b> on line <b>12</b><br />如何解决这个问题呢?
发布于 2012-11-19 17:35:51
我找到了解决办法。感谢所有帮助我的人。
was主机找不到该文件,因为我正在使用
require_once( __DIR__ . '/db_connect.php');若要在同一文件夹中查找下一个php文件,请执行以下操作。相反,我应该使用:
define('__ROOT__', dirname(dirname(__FILE__)));
require_once(__ROOT__.'/android_connect/db_connect.php'); 发布于 2012-11-18 16:21:35
看起来,您所访问的URI返回的是一个HTML文档,而不是JSON。导航到web浏览器中的URI,或者使用CURL查看它返回的内容。
正如其他一些人所提到的,PHP可能会显示错误,或者您可能收到web服务器错误( la 404或500)。
一些免费的web主机向HTML响应中注入广告,这可能会导致调试和生产之间的差异。您可能希望将响应类型头设置为application/json,这样可以避免任何干扰。
例如:
// This must go before any output has started, I.E. at the
// beginning of the first loaded document
header('Content-type: application/json');发布于 2012-11-18 16:32:21
当您在模拟器中有一个工作环境时,请通过WLAN对您的手机进行同样的尝试。然后,在中间没有额外的步骤/服务器,这可能会扭曲服务器响应。
https://stackoverflow.com/questions/13441891
复制相似问题