0

我有一个问题,我想通过安卓设备登录一个网站。我看过很多关于这个的样本,但它对我不起作用。这是我的代码:

    DefaultHttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.example.com/login.php");
    httppost.setHeader("Content-Type","text/html");
    ArrayList<BasicNameValuePair> pairs = new ArrayList();
    pairs.add(new BasicNameValuePair("username", "test1"));
    pairs.add(new BasicNameValuePair("password", "pass1"));
    try {
        UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(pairs, HTTP.UTF_8);

        /** Assign the POST data to the entity */
        httppost.setEntity(p_entity);

        /** Perform the actual HTTP POST */
        HttpResponse response = httpclient.execute(httppost);

        TextView txtView = (TextView)findViewById(R.id.txtMessage);
        txtView.setText(EntityUtils.toString(response.getEntity()));

    } catch (UnsupportedEncodingException uee) {
        uee.printStackTrace();
    } catch (IOException ioe) {
        ioe.printStackTrace();
    }

我不明白 new BasicNameValuePair("username", "test1") 。这里的态度是什么.???

<input type="text" name="username" size="25" maxlength="40" value="" class="post" id="autofocus" tabindex="1"/>

<input type="password" name="password" size="25" maxlength="32" class="post" tabindex="2"/>

它只是返回登录页面。它不会将参数传递给 login 。有什么建议么 ?

4

2 回答 2

0

test1是您的用户名,pass1也是您的密码。

如果您从 edittexts 获取用户名和密码,请使用此代码

pairs.add(new BasicNameValuePair("username", ed_user.getText().toString()));
pairs.add(new BasicNameValuePair("password", ed_pass.getText().toString()));

你的编辑文本ed_user在哪里?ed_pass

于 2013-01-23T03:52:25.177 回答
0

检查 HTML 页面的源代码并找到以下部分(示例):

<form name="frm" method="post" action="/cgi-bin/websms/index.pl" onSubmit="return validate()">

现在根据表单的 action="..." 部分在您的程序中更新您的 URL。

于 2013-02-26T18:30:11.080 回答