Bonjour,
J'essaye d’insérer des données a partir d'un client android vers un serveur externe et avec mon code j’insère des ligne dans la table de ma base mais sont vide (les données sont invisible ) et j'ai le message d 'erreur dans logcat.
Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
mon code java : la classe de création de produit et la suivante
import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; /**
Created by ${kahina} on 09/03/2016. */public class AjouterClient extends Activity { // Progress Dialog private ProgressDialog pDialog; JSONParser jsonParser = new JSONParser(); EditText inputpid; EditText inputName; EditText inputPrice; EditText inputDesc; // url to create new product private static String url_create_product = "http://192.168.8.16/createPRODUCT.php"; // JSON Node names private static final String TAG_SUCCESS = "success"; public void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ajouterclient); // Edit Text inputpid = (EditText) findViewById(R.id.btnpid); inputName = (EditText) findViewById(R.id.btnname); inputPrice = (EditText) findViewById(R.id.btnprice); inputDesc = (EditText) findViewById(R.id.btnprice); // C Button btnCreateProduct = (Button) findViewById(R.id.btnvalider); // btnCreateProduct.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new CreateNewProduct().execute(); } }); } class CreateNewProduct extends AsyncTask<String, String, String> { @Override protected void onPreExecute() { super.onPreExecute(); pDialog = new ProgressDialog(AjouterClient.this); pDialog.setMessage("Creating Product.."); pDialog.setIndeterminate(false); pDialog.setCancelable(true); pDialog.show(); } /** * Creating product * */ protected String doInBackground(String... args) { String pid =inputpid.getText().toString(); String name = inputName.getText().toString(); String price = inputPrice.getText().toString(); String description = inputDesc.getText().toString(); // List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair ("PID",pid)); params.add(new BasicNameValuePair("NAME", name)); params.add(new BasicNameValuePair("PRICE", price)); params.add(new BasicNameValuePair("DESCRIPTION", description)); // getting JSON Object // Note that create product url accepts POST method JSONObject json = jsonParser.makeHttpRequest(url_create_product, "POST", params); // check log cat fro response Log.d("Create Response", json.toString()); // check for success tag try { int success = json.getInt(TAG_SUCCESS); if (success == 1) { // successfully created product Intent i = new Intent(getApplicationContext(), Afficher_listCL.class); startActivity(i); // closing this screen finish(); } } catch (JSONException e) { e.printStackTrace(); } return null; } /** * After completing background task Dismiss the progress dialog * **/ protected void onPostExecute(String file_url) { pDialog.dismiss(); } } }
Et voici la classe JSONParser :
import android.util.Log; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.utils.URLEncodedUtils; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.util.List; /**
Created by ${kahina} on 09/03/2016. */public class JSONParser { static InputStream is = null; static JSONObject jObj = null; static String json = ""; // constructor public JSONParser() { } // function get json from url // by making HTTP POST or GET mehtod public JSONObject makeHttpRequest(String url, String method, List<NameValuePair> params) { // Making HTTP request try { // check for request method if(method == "POST"){ // request method is POST // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); httpPost.setEntity(new UrlEncodedFormEntity(params)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); }else if(method == "GET"){ // request method is GET DefaultHttpClient httpClient = new DefaultHttpClient(); String paramString = URLEncodedUtils.format(params, "utf-8"); url += "?" + paramString; HttpGet httpGet = new HttpGet(url); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); json = sb.toString(); } catch (Exception e) { Log.e("Buffer Error", "Error converting result " + e.toString()); } // try parse the string to a JSON object try { jObj = new JSONObject(json); } catch (JSONException e) { Log.e("JSON Parser", "Error parsing data " + e.toString()); } // return JSON String return jObj;} }
svp quelqu'un peut m’orientè et me dire comment réglé le problème de la conversion de string to jsonobjet
Afficher la suite