簡體   English   中英

Android服務器數據獲取

[英]Android server data fetching

我想從phpMyAdmin服務器獲取數據。 我知道的唯一功能是:

private String getPage() {
            String str = "***";

            try
            {
                HttpClient hc = new DefaultHttpClient();
                HttpPost post = new HttpPost("http://mywebsite.me");
                HttpResponse rp = hc.execute(post);

                if(rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
                {
                    str = EntityUtils.toString(rp.getEntity());
                }
            }catch(IOException e){
                e.printStackTrace();
            }  

            return str;
        }

它不起作用,因為我需要使用用戶名和密碼進行身份驗證。 我認為此功能無法正常工作的另一個原因是,它捕獲了頁面的源代碼(Chrome中的ctrl + u ),並且我所需的值不存在,它們位於服務器上的表中。 我該怎么辦?

我不知道是否能得到您的答案,但是直接的方法是使用查詢創建一個php文件,以提取數據庫中所需的數據,並從php文件中以xml或json格式輸出數據。 如果需要示例檢查:

http://webdesignergeeks.com/mobile/android/android-login-authentication-with-remote-db/向您展示了如何從php數據庫中獲取數據以及如何從android應用中發出http請求。

他們從android應用向服務器發出HTTP POST或HTTP GET請求,以獲取所需的數據。 至於用戶名和密碼。 您是指SSL證書嗎? 您究竟在哪里需要用戶名和密碼?

您正在以錯誤的方式思考。 我認為phpAdmin實際上是phpmyadmin,並且您正在從數據庫中查找數據?

PHPMyAdmin是執行瀏覽器所需的頁面的一部分:從數據庫中提取信息。 您無需瀏覽該頁面即可獲取信息。 您可以編寫一些.php文件來為您提取數據(例如,以XML或JSON格式),並使用上述代碼獲取它們,或者嘗試直接與您的數據庫聯系,而無需apache服務器的干預。

編輯:看起來直接聯系不太容易,您的登錄名對於外部連接應該是有效的(可能不是)。 我猜您應該編寫一個所謂的“ REST”接口(一堆文件基本上可以完成phpmyadmin的工作,但並不那么復雜:您請求一個表,並且它為您提供了phpmyadmin顯示的所有其他內容)。

在此處查找示例,以獲取有關如何執行此操作的更多信息: http : //www.helloandroid.com/tutorials/connecting-mysql-database

如果您的網站需要身份驗證,則使用livehttpheader插件(firefox)或wireshark捕獲正在進行的POST請求,然后使用該URL獲取源(我假設如果您成功登錄,則該頁面將顯示phpmyadmin中的數據(關於)),然后搜索該源以查找所需的值。

鏈接的例子應該像這樣

http://mywebsite.me?login=true&username=myusername&password=mypassword&extrafield=xxx....

您必須在代碼中使用此鏈接

 HttpPost post = new HttpPost("http://mywebsite.me?login=true&username=myusername&password=mypassword&extrafield=xxx....");

PS:我不知道android編碼,但一般的解決方案將是上面的:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM