Android HTTPPOST请求返回与我发送的页面相同的页面

时间:2011-12-07 16:26:56

标签: php android apache post http-post

由于这个原因我感到头疼...我正在尝试登录此网址:http://www.johanstenberg.se/tests/app/signuptest.php这是基于此代码构建的:

<html>
<form method="post" action="signupresult.php">
username:<input type="text" size="20" maxlength="20" name="username"/>
password:<input type="text" size="20" maxlength="20" name="password"/>
client:<input type="text" size="20" maxlength="20" name="client"/>
<input type="submit"/>
</form>
<html>

该代码应该将我发送到这个网站:http://www.johanstenberg.se/tests/app/signupresult.php,其中包含以下源代码:

<html>
<?php if(strcmp($_POST["username"], "matilda") == 0 && strcmp($_POST["password"],"password") == 0 && strcmp($_POST["client"], "TESTCLIENT1") == 0){
echo "accept";}
else{
echo "reject";}?>
</html>

如果我手动将它放入第一个URL,这是有效的,但是当尝试从android asynctask执行它时,它只返回来自signuptest.php的源代码......

int TIMEOUT_MS = 10000;
HttpClient httpClient = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(httpClient.getParams(), TIMEOUT_MS);
HttpConnectionParams.setSoTimeout(httpClient.getParams(), TIMEOUT_MS);
HttpPost httpPost = new HttpPost(urlToSignupForm); 
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("username", username));
nameValuePairs.add(new BasicNameValuePair("password", password));
nameValuePairs.add(new BasicNameValuePair("client", client));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpClient.execute(httpPost);
String s = EntityUtils.toString(response.getEntity());

String s是第一个网页的源代码(如前所述,signuptest.php)。我的代码没有按“按钮”或其他东西,我怎么做到这一点?先谢谢你们,我一直在寻找几个小时而没有任何结果!

哦我应该添加用户名,密码和客户端都是“正确的”,这是在signupresult.php中生成“接受”的必填字段。

1 个答案:

答案 0 :(得分:1)

您应该使用signupresult.php作为您要连接的网址,因为您使用HttpConnection发布了数据。对于使用浏览器的人,他们会去signuptest.php看一下他们可以填写的表格并让浏览器提交给signupresult.php。