如何将文本从editbox放入网站登录字段

时间:2011-06-22 22:37:39

标签: android webview editbox

嘿伙计们,我想做的是有两个编辑框供用户登录网站。我不想使用webview。我的问题是我如何从编辑框中获取输入的值并将其作为登录信息(即用户名和密码)并在结果成功与否时返回结果?

再次感谢!

1 个答案:

答案 0 :(得分:1)

我实际上只是写了一个应用程序来做这件事。我的第一个问题是你在网络上使用什么技术?对我来说这是asp.NET。您可以使用GET或POST方法发送用户凭据并获取结果。我建议使用POST,因为信息是敏感的,POST对于那种类型的信息更好。这是代码。

ASPX代码:

string User = Request.Form["u"];
string Pass = Request.Form["p"];
Response.Write(ValidateUser(u, p));
//I won't show you the validation code for security reasons.  But I think you get the idea.

ANDROID CODE:

public class LoginActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);

        //Gets your login button and sets onClickListener
        Button btnLogin = (Button)findViewById(R.id.btnLogin);
        btnLogin.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                try {
                    //Get your TextBox from the layout
                    EditText etUserName = (EditText)findViewById(R.id.etUser);
                    EditText etPassword = (EditText)findViewById(R.id.etPass);

                    //Client to make the request to your web page
                    DefaultHttpClient myClient = new DefaultHttpClient();

                    //This is where you put the information you're sending.
                    HttpPost postUserCredentials = new HttpPost(getString(R.string.LoginAddress));
                    HttpEntity postParameters = new StringEntity("u=" + etUserName.getText() + "&p=" + etPassword.getText());

                    postUserCredentials.setHeader("Content-type", "application/x-www-form-urlencoded");
                    postUserCredentials.setEntity(postParameters);

                    HttpResponse postResponse = myClient.execute(postUserCredentials);
                    HttpEntity postResponseEntity = postResponse.getEntity();

                    String result = EntityUtils.toString(postResponseEntity);

                    if (result.equals("1")) {
                        Toast.makeText(this, "Login Succeeded", Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(this, "Login Failed", Toast.LENGTH_LONG).show();
                    }
                } catch (Exception e) {
                    Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
                }
            }
        });
    }
}

login.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <TextView android:id="@+id/tvUser" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Username:" />
    <EditText android:id="@+id/etUser" android:layout_width="match_parent" android:layout_height="wrap_content" />
    <TextView android:id="@+id/tvPass" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Password:" />
    <EditText android:id="@+id/etPass" android:layout_width="match_parent" android:layout_height="wrap_content" android:password="true" />
    <Button android:id="@+id/btnLogin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Login" />
</LinearLayout>