我有一个问题,我想通过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"/>
它只返回登录页面。它不会将参数传递给登录。有什么建议吗?
答案 0 :(得分: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
是您的edittexts
答案 1 :(得分:0)
检查HTML页面的源代码并找到以下部分(示例):
<form name="frm" method="post" action="/cgi-bin/websms/index.pl" onSubmit="return validate()">
现在根据表单的action =“...”部分在您的程序中更新您的网址。