2014-01-06 4 views
0

Прежде всего, я должен сказать, что я совершенно новый в HTTP. Я собираюсь отправить запрос на отправку на веб-сайт ресторана моих родителей, чтобы зарегистрировать нового пользователя из моего приложения.Http Post возвращает 200, но не работает

Сайт это (на испанском языке): http://pedidos.pizzeriabritannia.com/index.asp?Opc=Registro

Насколько я знаю запрос пост имеет следующие valuePairs:

<form name="formulario" method="post" action="index.asp?Opc=Registro&Sub=Nuevo" > 

<input type="text" size="20" name="nombre" value="" style="background-color:#f5f7fe" />        
<input type="text" size="30" name="apellidos" value="" style="background-color:#f5f7fe" /> 
<input type="text" size="30" name="direccion" value="" style="background-color:#f5f7fe" /> 
<input type="text" size="20" name="nif" id="nif" style="background-color:#f5f7fe" value="" /> 
<input type="text" size="30" name="email" id="email" value="" style="background-color:#f5f7fe"/> 
<input type="text" size="20" name="telefono" value="" style="background-color:#f5f7fe" /> 
<input type="text" size="10" name="clave" value="" style="background-color:#f5f7fe" />  
<input type="checkbox" value="S" name="correo" checked="checked" /> 

И в моем Android кода я делаю:

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("http://pedidos.pizzeriabritannia.com/index.asp?Opc=Registrado"); 

StringBuilder data = null; 
String answer =""; 
    try { 
     // Add your data 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("nombre", Nombre)); 
     nameValuePairs.add(new BasicNameValuePair("apellidos", Apellidos)); 
     nameValuePairs.add(new BasicNameValuePair("calle", Calle)); 
     nameValuePairs.add(new BasicNameValuePair("direccion", Detalles)); 
     nameValuePairs.add(new BasicNameValuePair("email", Email)); 
     nameValuePairs.add(new BasicNameValuePair("clave", contrasena)); 
     nameValuePairs.add(new BasicNameValuePair("telefono", telefono)); 
     nameValuePairs.add(new BasicNameValuePair("nif", "")); 
     nameValuePairs.add(new BasicNameValuePair("correo", "s")); 

     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     HttpResponse response = httpclient.execute(httppost); 
     data = inputStreamToString(response.getEntity().getContent()); 
     int code = response.getStatusLine().getStatusCode(); 
     answer = code + data.toString(); 


    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
    } 
    return answer; 

} 

Я получаю 200 в качестве ответа, что означает, что все прошло нормально, но проблема в том, что электронное письмо должно быть отправлено на адрес электронной почты, указанный в форме, и это не happe нин. У вас есть идеи? Любое предложение, которому я мог бы следовать?

Editted:

private StringBuilder inputStreamToString(InputStream is) { 
    String line = ""; 
    StringBuilder total = new StringBuilder(); 

    // Wrap a BufferedReader around the InputStream 
    BufferedReader rd = new BufferedReader(new InputStreamReader(is)); 

    // Read response until the end 
    try { 
     while ((line = rd.readLine()) != null) { 
      total.append(line); 
     } 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    // Return full string 
    return total; 
} 
+1

Вам не нужна эта '& Sub = Nuevo' часть в вашем URL-адресе? – njzk2

+0

Вы так думаете? Я попытаюсь ... – Aldridge1991

+0

также, по-видимому, на этом конкретном посту, 200 может не означать, что все в порядке, поскольку, похоже, есть некоторые проверки на стороне сервера. Возвращается 200, но прикрепленная веб-страница объясняет ошибку. Я предлагаю вам попробовать посмотреть, что там есть в сообщении об ошибке. (например, вы можете отобразить его в веб-просмотре.) – njzk2

ответ

1

HTML, экстракт упоминают следующий адрес: index.asp?Opc=Registro&Sub=Nuevo

Вы, по-видимому сделать свой запрос на index.asp?Opc=Registrado, который разные, поскольку &Sub=Nuevo pa rt отсутствует. (Значение Nuevo, вероятно, указывает на создание нового элемента).

0
data = inputStreamToString(response.getEntity().getContent()); 

заменить его

data = EntityUtils.toString(response.getEntity()); 
+0

, хотя это технически верно, это не ответ, а комментарий. – njzk2

Смежные вопросы