[英]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.