Запрос HTTPPOST Android возвращает ту же страницу, что и я - PullRequest
0 голосов
/ 07 декабря 2011

Я получаю безумную головную боль из-за этого ... Я пытаюсь войти в этот URL: 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 он просто возвращает исходный код из 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). Мой код не нажимает кнопку или что-то в этом роде, как мне это сделать? Заранее спасибо, ребята, я искал часы безрезультатно!

О, я должен добавить, что имя пользователя, пароль и клиент все "правильные", то есть обязательные поля для генерации "accept" в signupresult.php.

1 Ответ

1 голос
/ 07 декабря 2011

Вы должны использовать signupresult.php в качестве URL-адреса, к которому вы подключаетесь, поскольку вы публикуете данные с HttpConnection.Для тех, кто использует браузер, он должен перейти к signuptest.php, чтобы получить форму, которую он может заполнить, и сделать так, чтобы браузер отправил ее в signupresult.php.

...