我正在尝试为我的大学做这样的事情,用户密码将用户名和密码放入文本框,用户点击登录按钮后,我的应用程序会将登录数据发布到网络服务器URL。成功登录后,我的应用程序webview将显示用户的详细信息。
POST登录数据>>到网络服务器>> HTML响应>> web视图
这是我的完整代码。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.CookieManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class AndroidLogin extends Activity implements OnClickListener {
Button ok,back,exit;
TextView result;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Login button clicked
ok = (Button)findViewById(R.id.btn_login);
ok.setOnClickListener(this);
result = (TextView)findViewById(R.id.lbl_result);
}
public void postLoginData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("https://icems.mmu.edu.my/sfik/sik_vlogin.jsp");
try {
// Add user name and password
EditText uname = (EditText)findViewById(R.id.txt_username);
String username = uname.getText().toString();
EditText pword = (EditText)findViewById(R.id.txt_password);
String password = pword.getText().toString();
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("studid", username));
nameValuePairs.add(new BasicNameValuePair("passwd", password));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
Log.w("MMU", "Execute HTTP Post Request");
HttpResponse response = httpclient.execute(httppost);
WebView AchievementWeb = (WebView) findViewById(R.id.webViewAchievement);
WebSettings webSettings = AchievementWeb.getSettings();
webSettings.setJavaScriptEnabled(true);
AchievementWeb.loadUrl("https://icems.mmu.edu.my/sfik/sik_studinfo.jsp");
String str = inputStreamToString(response.getEntity().getContent()).toString();
Log.w("MMU", str);
if(str.toString().equalsIgnoreCase("true"))
{
Log.w("MMU", "Login success");
}else
{
Log.w("MMU", "Login fail");
}
} 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;
}
@Override
public void onClick(View view) {
if(view == ok){
postLoginData();
}
}
}
这是我的logcat。应用程序运行良好,基于logcat {01-03 01:43:03.587:W / MMU(809)},我想我已成功发布登录数据,但在运行我的webview时,仍然要求我登录我的用户名和密码。所以我的问题是,我怎么能将我的帖子数据传递给webview?我需要一些帮助......谢谢。
01-03 01:42:50.416: D/dalvikvm(809): GC_FOR_ALLOC freed 230K, 13% free 2694K/3088K, paused 76ms, total 78ms
01-03 01:42:50.436: I/dalvikvm-heap(809): Grow heap (frag case) to 3.392MB for 635812-byte allocation
01-03 01:42:50.516: D/dalvikvm(809): GC_FOR_ALLOC freed 1K, 11% free 3314K/3712K, paused 73ms, total 73ms
01-03 01:42:50.546: D/dalvikvm(809): GC_FOR_ALLOC freed <1K, 11% free 3313K/3712K, paused 33ms, total 35ms
01-03 01:42:50.566: I/dalvikvm-heap(809): Grow heap (frag case) to 3.868MB for 500416-byte allocation
01-03 01:42:50.626: D/dalvikvm(809): GC_FOR_ALLOC freed <1K, 10% free 3802K/4204K, paused 59ms, total 59ms
01-03 01:42:51.268: D/(809): HostConnection::get() New Host Connection established 0x2a2055d8, tid 809
01-03 01:42:52.576: E/cutils-trace(809): Error opening trace file: No such file or directory (2)
01-03 01:42:53.446: D/TilesManager(809): Starting TG #0, 0x2a269070
01-03 01:42:57.906: D/InputEventConsistencyVerifier(809): KeyEvent: ACTION_UP but key was not down.
01-03 01:42:57.906: D/InputEventConsistencyVerifier(809): in android.widget.EditText{4171f580 VFED..CL .F....I. 135,151-285,215 #7f050004 app:id/txt_password}
01-03 01:42:57.906: D/InputEventConsistencyVerifier(809): 0: sent at 125371000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_TAB, scanCode=15, metaState=0, flags=0x8, repeatCount=0, eventTime=125371, downTime=125269, deviceId=0, source=0x101 }
01-03 01:43:01.906: W/MMU(809): Execute HTTP Post Request
01-03 01:43:03.096: D/dalvikvm(809): GC_FOR_ALLOC freed 957K, 25% free 3358K/4476K, paused 43ms, total 48ms
01-03 01:43:03.587: W/MMU(809): <html><head><title>Student Information</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#FFFFFF" text="#000000" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF"><font face="Verdana, Arial, Helvetica, sans-serif"> <font size="1"> <body link="#FFFFFF" alink="#FFFF00"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr valign="top"> <td width="32%"><img src="images/sfik.jpg"> </td> <td width="34%" valign="middle" nowrap> <div align="center"><font size="4" face="Verdana, Arial, Helvetica, sans-serif"> </font></div> </td> <td align="right" width="34%"><img src="staff/images/mmulogo_small.jpg" width="300" height="74"> </td> </tr></table><table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="#336699"> <tr> <td><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF"><b> | <a href="sik_studinfo.jsp">Student Info</a> | <a href="sik_invoices.jsp">Invoices</a> | <a href="sik_payment.jsp">Payment</a> | <a href="sik_refund.jsp">Refund</a> | <a href="sik_allowance.jsp">Allowance</a> | <a href="sik_ledger.jsp">Student Statement </a> | <a href="sik_supp.jsp">Supplementary Paper </a> | <a href="sik_convo.jsp">Convo Fees </a> | <a href="sik_summon.jsp">Summon</a> | <!--a href="sik_onlinepayment.jsp"--><a href="http://www.maybank2u.com.my/" target="_blank">Maybank2u Online Payment</a> | <a href="http://www.cimbclicks.com.my/" target="_blank">CIMBClicks Online Payment</a></b></font></td> <td align="right"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF"><b> | <a href="logout.jsp">Logout </a> | <a href="logout.jsp"> </a></b></font> </td> </tr></table><table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#3366CC"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="4" > <tr valign="center" bgcolor="#ffffff"><td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="62%"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1"> <b>Student ID : xxxxxxxxxx</b> </font> </td> <td width="38%" align="right"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Name : xxxxxx xxxxxx</b> </font> <font face="Verdana, Arial, Helvetica, sans-serif" size="1"> </font> </td> </tr></table></td> </tr></table></td> </tr></table></font></font> <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#3366CC"> <tr> <td> <table width="100%" border="0" cellspacing="1" cellpadding="5" bgcolor="#3366CC"> <tr> <td bgcolor="#FFFFFF"> <table width="78%" border="0" cellspacing="0" cellpadding="0" bgcolor="#3366CC" align="center"> <tr> <td bgcolor="#3366CC"> <table width="100%" border="0" cellpadding="3" cellspacing="1"> <tr bgcolor="#FFFFFF"> <td align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="1">IMPORTANT ! </font></strong></font> <p align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br> Dear Students, </font></p> <p align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">For those who paid at CIMB branches (EXCEPT on campus branch), please submit the copy of bank slip/remittance document/other proof of payment to Finance Counter or fax it over to 06-2315605 (Melaka) or 03-83125030 (Cyberjaya) and don't forget to write your ID on it!</font></p> <p align="left"> </p> <p align=
01-03 01:43:03.606: W/MMU(809): Login fail