http发布数据登录无法正常工作?

时间:2013-01-23 03:48:57

标签: java android http login http-post

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

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

我不懂新的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"/>

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

2 个答案:

答案 0 :(得分:0)

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

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

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

其中ed_usered_pass是您的edittexts

答案 1 :(得分:0)

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

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

现在根据表单的action =“...”部分在您的程序中更新您的网址。