Bonjour,

Mon objectif est d'envoyer une donnée vers une base de données via la méthode post. La requête étant lourdes alors j'utilise un asynctask. Cependant au passage DoInBackground la demande ne fonctionne pas. Je ne vois pas l'erreur si vous pouviez m'éclairer, merci d'avance. Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package com.example.projet_android;
 
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
 
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
 
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
 
 
 
public class MainActivity extends Activity {	 
        TextView content;
        EditText value;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        value =  (EditText)findViewById(R.id.edittext);
        Button button=(Button)findViewById(R.id.button);
 
        button.setOnClickListener(new Button.OnClickListener(){
 
        	public void onClick(View v){
        		Toast.makeText(getApplicationContext(), "Début du traitement asynchrone", Toast.LENGTH_LONG).show();
        		new MyAsyncTask().execute(value.getText().toString());
        	}
        });
    }
 
 
private class MyAsyncTask extends AsyncTask<String, Void, Void>{
 
 
 
	protected void onPreExecute() {
		super.onPreExecute();
		Toast.makeText(getApplicationContext(), "Début du traitement asynchrone", Toast.LENGTH_LONG).show();
	}
 
	@Override
	protected Void doInBackground(String... params) {
		postData(params[0]);
		return null;
	}
 
	@Override
	protected void onPostExecute(Void result) {
		Toast.makeText(getApplicationContext(), "Le traitement asynchrone est terminé", Toast.LENGTH_LONG).show();
	}
 
	public void postData(String valueIWantToSend) {
		// Create a new HttpClient and Post Header
		HttpClient httpclient = new DefaultHttpClient();
		HttpPost httppost = new HttpPost("http://127.0.0.1/android/reception.php");
 
		try {
			// Add your data
			List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
			nameValuePairs.add(new BasicNameValuePair("texte", valueIWantToSend));
			httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
 
			// Execute HTTP Post Request
			HttpResponse response;
			response = httpclient.execute(httppost);
 
 
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
		} catch (IOException e) {
			// TODO Auto-generated catch block
		}
 
	}
}
}