我想從我的android應用程序連接到數據庫,並找到了一個教程來做到這一點(link to tutorial)。從Android連接到PHP和MySQL
當我在模擬器中使用它時,它工作正常,但當我嘗試在手機上使用它時沒有問題。我已經嘗試了一個WAMP服務器,我有端口轉發它,我已經嘗試過一個真正的Web主機(000webhost)。從模擬器到手機的唯一區別是URL,我必須提供公共IP地址而不是10.0.2.2。我也嘗試了託管WAMP服務器的計算機的本地IP。我知道一些虛擬主機爲代碼添加廣告,但我確信WAMP不會這樣做。
當我使用的是手機,我從logcat中出現以下錯誤:
Error parsing data org.json.JSONException: Value <html> of type java.lang.String cannot be converted to JSONObject
更新1:
我一直在使用捲曲來檢查什麼的回國受審。它返回一個批次(標題的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來訪問本地主機時,它將從數據庫中返回正確的項目,而不是所有的HTML代碼作爲具有公有IP的服務器。
更新2:
我解決了這個問題與公衆WAMP服務器。我是一個noob,忘記了我已經用密碼設置了服務器。
但是,當我使用虛擬主機提供商(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
我從捲曲得到這個錯誤:
<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 />
如何這個問題可以解決?
您的PHP可能會向您顯示一條錯誤消息,而不是預期的json輸出。爲什麼不嘗試閱讀? – Tchoupi
另外,查看服務器日誌文件也許是有意義的。錯誤和問題實際上寫在那裏是一個非常整潔的事情... – arkascha
檢查來自服務器的響應。看起來你正在得到HTML頁面,而不是JSON字符串.. –