我想从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 )并且我需要的值不存在,它们位于服务器上的表中。我怎么能这样做?
答案 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编码,但一般的解决方案将如上所述:)