#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. Если бы вы могли немного уточнить решение, это было бы здорово