Отправлять данные методом Post? (Android и PHP)

#java #php #android #post #http-post

#java #php #Android #Публикация #http-post

Вопрос:

Проблема в том, что я не могу отправлять данные методом POST

Ни один из кодов не помог мне передать данные через метод post, все отмеченные ошибки при запуске

Код:

 public class Registro extends Activity{

protected String pagina = "http://192.168.0.5/vcard/index.php";
protected WebView web;
protected String qr = "70", firstname = "Name", lastname = "Last",
            email = "email@hotmail.es", institucion = "ITA", movil = "9136161";


protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    web = (WebView) findViewById(R.id.webView1);

    postData();

    web.loadUrl(pagina);
}

public void postData() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost(pagina);

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(6);
                nameValuePairs.add(new BasicNameValuePair("qr", qr));
                nameValuePairs.add(new BasicNameValuePair("firstname", firstname));
                nameValuePairs.add(new BasicNameValuePair("lastname", lastname));
                nameValuePairs.add(new BasicNameValuePair("email", email));
                nameValuePairs.add(new BasicNameValuePair("institucion", institucion));
                nameValuePairs.add(new BasicNameValuePair("movil", movil ));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);

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

другой код

 public class Registro extends Activity{

protected String pagina = "http://192.168.0.5/vcard/index.php";
protected WebView web;
protected String qr = "70", firstname = "Jonatan", lastname = "Flores",
            email = "quemeves@hotmail.es", institucion = "ITA", movil = "9136161";


protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    web = (WebView) findViewById(R.id.webView1);

                     try
                     {
                        HttpURLConnection connection;
                           OutputStreamWriter request = null;

                                URL url = null;   
                                String response = null;         
                                String parameters = "qr=" qr "amp;firstname=" firstname "amp;lastname=" lastname "amp;email="
                                 email "amp;institucion=" institucion "amp;movil=" movil;  

                          url = new URL(pagina);
                          connection = (HttpURLConnection) url.openConnection();
                          connection.setDoOutput(true);
                          connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                          connection.setRequestMethod("POST");    

                          request = new OutputStreamWriter(connection.getOutputStream());
                          request.write(parameters);
                          request.flush();
                          request.close();            
                          String line = "";               
                          InputStreamReader isr = new InputStreamReader(connection.getInputStream());
                          BufferedReader reader = new BufferedReader(isr);
                          StringBuilder sb = new StringBuilder();
                          while ((line = reader.readLine()) != null)
                          {
                              sb.append(line   "n");
                          }
                          // Response from server after login process will be stored in response variable.                
                          response = sb.toString();
                          // You can perform UI operations here
                          Toast.makeText(this,"Message from Server: n"  response, 0).show();             
                          isr.close();
                          reader.close();

                      }
                      catch(IOException e)
                      {
                         {Toast.makeText(this,"Error 1", 0).show();  
                      }


                    }

    web.loadUrl(pagina);
}}
  

Данные PHP

  <?php

require("LBHToolkit/vCard/Generator.php");



$nombres        = $_POST['qr']);
$firstname      = $_POST['firstname']);
$lastname       = $_POST['lastname']);
$email          = $_POST['email']);
$institucion    = $_POST['institucion']);
$movil          = $_POST['movil']);

... //code to generate a vCard

echo $vcard->create();

?>
  

В конце концов, данные получены и загружается визитная карточка, но всегда загружается визитная карточка без данных

Комментарии:

1. используете ли вы mod_rewrite для своего php?

2. Вы говорите, что данные поступают на серверную часть, но не находятся на визитной карточке. Может ли это быть связано с тем, что вы не передаете данные создателю визитной карточки?

3. Подробнее ( связано с предыдущим комментарием выше ^ )

Ответ №1:

Используйте класс AsyncTask для postData()

Комментарии:

1. Если бы вы могли немного уточнить решение, это было бы здорово