POST登录数据到android webview

时间:2015-01-03 07:36:04

标签: android webview postdata

我正在尝试为我的大学做这样的事情,用户密码将用户名和密码放入文本框,用户点击登录按钮后,我的应用程序会将登录数据发布到网络服务器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">&nbsp;</td>    <td width="34%" valign="middle" nowrap>       <div align="center"><font size="4" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;      </font></div>    </td>    <td align="right" width="34%"><img src="staff/images/mmulogo_small.jpg" width="300" height="74">&nbsp;</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>&nbsp;|&nbsp;<a href="sik_studinfo.jsp">Student       Info</a>&nbsp;|&nbsp; <a href="sik_invoices.jsp">Invoices</a>&nbsp;|&nbsp;       <a href="sik_payment.jsp">Payment</a>&nbsp;|&nbsp; <a href="sik_refund.jsp">Refund</a>&nbsp;|&nbsp;       <a href="sik_allowance.jsp">Allowance</a>&nbsp;|&nbsp; <a href="sik_ledger.jsp">Student       Statement </a>&nbsp;|&nbsp; <a href="sik_supp.jsp">Supplementary Paper </a>&nbsp;|&nbsp;<a href="sik_convo.jsp">Convo Fees </a>&nbsp;|&nbsp;<a href="sik_summon.jsp">Summon</a>&nbsp;|&nbsp;<!--a href="sik_onlinepayment.jsp"--><a href="http://www.maybank2u.com.my/" target="_blank">Maybank2u Online       Payment</a> &nbsp;|&nbsp;<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>&nbsp;|&nbsp;<a href="logout.jsp">Logout       </a>&nbsp;|&nbsp;<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">&nbsp;                   </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

0 个答案:

没有答案