从android应用程序登录到网页
我是Android新手,今天遇到了一个问题。我想登录此网站: 并且从源代码中检索一些数据,但我当然不知道从哪里开始。你能给我一些关于这个问题的建议或文献吗 谢谢你们,伙计们 我有以下代码:从android应用程序登录到网页,android,http,login,Android,Http,Login,我是Android新手,今天遇到了一个问题。我想登录此网站: 并且从源代码中检索一些数据,但我当然不知道从哪里开始。你能给我一些关于这个问题的建议或文献吗 谢谢你们,伙计们 我有以下代码: public void postLoginData() { // Create a new HttpClient and Post Header HttpClient httpclient = new DefaultHttpClient(); /* login.php return
public void postLoginData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
/* login.php returns true if username and password is equal to saranga */
HttpPost httppost = new HttpPost("http://pedidos.pizzeriabritannia.com/index.asp?Opc=Pedir");
try {
// Add user name and password
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username", "942037851"));
nameValuePairs.add(new BasicNameValuePair("password", "xxxxxx"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
Log.w("SENCIDE", "Execute HTTP Post Request");
HttpResponse response = httpclient.execute(httppost);
String str = inputStreamToString(response.getEntity().getContent()).toString();
Log.w("SENCIDE", str);
if(str.toString().equalsIgnoreCase("true"))
{
Log.w("SENCIDE", "TRUE");
et1.setText("Login successful");
}else
{
Log.w("SENCIDE", "FALSE");
et1.setText("Login not successful");
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private StringBuilder inputStreamToString(InputStream is) {
String line = "";
StringBuilder total = new StringBuilder();
// Wrap a BufferedReader around the InputStream
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
// Read response until the end
try {
while ((line = rd.readLine()) != null) {
total.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
// Return full string
return total;
}
public void postloginanda(){
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
/*如果用户名和密码等于saranga,login.php将返回true*/
HttpPost HttpPost=新的HttpPost(“http://pedidos.pizzeriabritannia.com/index.asp?Opc=Pedir");
试一试{
//添加用户名和密码
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“用户名”,“942037851”);
添加(新的BasicNameValuePair(“密码”,“xxxxxx”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
w(“SENCIDE”,“执行HTTP Post请求”);
HttpResponse response=httpclient.execute(httppost);
字符串str=inputStreamToString(response.getEntity().getContent()).toString();
Log.w(“SENCIDE”,str);
if(str.toString().equalsIgnoreCase(“true”))
{
Log.w(“SENCIDE”、“TRUE”);
et1.setText(“登录成功”);
}否则
{
Log.w(“SENCIDE”、“FALSE”);
et1.setText(“登录不成功”);
}
}捕获(客户端协议例外e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}
私有StringBuilder inputStreamToString(InputStream为){
字符串行=”;
StringBuilder总计=新StringBuilder();
//在InputStream周围包装一个BufferedReader
BufferedReader rd=新的BufferedReader(新的InputStreamReader(is));
//读取响应直到结束
试一试{
而((line=rd.readLine())!=null){
合计.追加(行);
}
}捕获(IOE异常){
e、 printStackTrace();
}
//返回完整字符串
返回总数;
}
您要求的是所谓的数据刮取。您必须解析返回的HTML才能得到您的值。您可以自己制作合适的HTML解析器,但我推荐一个这样的库。从源代码中检索数据是什么意思?您想访问服务器源代码中的一些数据吗?我想登录,然后是一个新的个人位置。在这里,我想了解一些关于用户的信息。