【问题标题】:Android server data fetchingAndroid服务器数据获取
【发布时间】:2011-12-09 08:33:11
【问题描述】:

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

【问题讨论】:

    标签: java android phpmyadmin fetch


    【解决方案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 证书。你到底在哪里需要用户名和密码?

    【讨论】:

      【解决方案2】:

      我认为你的做法是错误的。我猜phpAdmin其实是phpmyadmin,你是从你的数据库里找数据吗?

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

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

      在此处查看有关如何执行此操作的更多信息:http://www.helloandroid.com/tutorials/connecting-mysql-database

      【讨论】:

      • 是的,你是对的,它是 phpMyAdmin ...我怎样才能直接联系我的数据库并获取我需要的数据?这不是我的服务器,它是属于大约 10 个人的服务器,每个人都在使用它的内容,所以我无法修改它,我只能读取数据。你能告诉我如何通过登录并获得我需要的信息吗?我真的很感激 。谢谢。
      【解决方案3】:

      如果您的网站需要身份验证,则使用 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....");
      

      P.S : 我不知道 android 编码,但一般的解决方案会像上面这样:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-25
        相关资源
        最近更新 更多