[英]Connect to PHP and MySQL from Android
我想從我的Android應用程序連接到一個數據庫,並找到了一個教程( 鏈接到教程 )。
當我在模擬器中使用它時它工作正常,但是當我嘗試在手機上使用它時卻沒有。 我嘗試過使用WAMP服務器,我有端口轉發它,我嘗試使用真正的Web主機(000webhost)。 從模擬器到手機的唯一區別是URL,我必須提供公共IP地址而不是10.0.2.2。 我也嘗試過托管WAMP服務器的計算機的本地IP。 我知道有些webhosts會在代碼中添加廣告,但我很確定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訪問localhost時,它返回數據庫中的正確項目,而不是所有html代碼作為具有公共IP的服務器。
更新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 />
怎樣才能解決這個問題?
您看到的URI看起來像是返回HTML文檔而不是JSON。 導航到Web瀏覽器中的URI或使用CURL查看返回的內容。
正如其他幾個人所提到的,PHP可能顯示錯誤,或者您可能收到Web服務器錯誤(à404或500)。
一些免費的Web主機將廣告注入HTML響應,這可能會導致調試和生產之間的差異。 您可能希望將Response-Type標頭設置為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');
我找到了解決方案。 感謝所有幫助過我的人。
webhost無法找到該文件,因為我正在使用
require_once( __DIR__ . '/db_connect.php');
在同一文件夾中查找下一個php文件。 相反,我應該使用:
define('__ROOT__', dirname(dirname(__FILE__)));
require_once(__ROOT__.'/android_connect/db_connect.php');
當您在模擬器中有工作環境時,請嘗試使用WLAN上的手機。 然后,您之間沒有其他步驟/服務器,這可能會扭曲您的服務器響應。
檢查此鏈接。 它用於登錄頁面。 但如果useranme和密碼退出MySQL,它使用php和MySql登錄用戶。 當你運行這段代碼並閱讀它時,你可以自己編寫代碼來完成php和mySQL的其他工作。 它是經過測試的代碼。 它也適用於Android設備。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.