1

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

再次感谢!

4

1 回答 1

1

我实际上只是写了一个应用程序来做这件事。我的第一个问题是您在 Web 端使用什么技术?对我来说,它是 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.

安卓代码:

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();
                }
            }
        });
    }
}

登录.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>
于 2011-06-22T23:40:47.767 回答