Android服务器数据获取

时间:2011-10-17 14:21:02

标签: java android phpmyadmin fetch

我想从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 )并且我需要的值不存在,它们位于服务器上的表中。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

我不知道是否得到了你的答案,但直截了当的方法是创建一个带有查询的php文件,以提取数据库中所需的数据,并从php文件输出xml或json格式的数据。如果您需要示例检查:

http://webdesignergeeks.com/mobile/android/android-login-authentication-with-remote-db/ 它向您展示了如何从php中的数据库获取数据以及如何从Android应用程序发出http请求。

他们从android应用程序向服务器发出HTTP POST或HTTP GET请求以获取所需数据。至于用户名和密码。您是在引用SSL证书吗?你究竟在哪里需要用户名和密码?

答案 1 :(得分:0)

你认为这是错误的。我假设phpAdmin实际上是phpmyadmin,你正在寻找数据库中的数据?

PHPMyAdmin是一组页面,用于执行您要为浏览器执行的操作:从数据库中提取信息。您无需通过该页面获取信息。您可以编写一些为您提取数据的.php文件(例如XML或JSON)并使用上面的代码获取它们,或者尝试直接联系您的数据库,而无需apache服务器的干预。

编辑:看起来直接联系并不太容易,并且您的登录应该对外部连接有效(可能不是)。我想你应该写一个所谓的“REST”界面(一堆文件基本上完成了phpmyadmin的功能,但并不复杂:你请求一个表,它给你这个没有phpmyadmin显示的所有其他东西)。

在此查找示例,了解有关如何执行此操作的更多信息:http://www.helloandroid.com/tutorials/connecting-mysql-database

答案 2 :(得分:0)

如果您的网站需要身份验证,请使用livehttpheader addon(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....");
P.S:我不知道android编码,但一般的解决方案将如上所述:)