2

I am would like to use volley to post data.

This is my php script:

<?php header('Content-Type: application/json; charset=utf-8'); /* * Following code will update a product information * A product is identified by product id (pid) */ // array for JSON response $response = array(); // check for required fields if (isset($_POST['quotes_id']) && isset($_POST['quote']) && isset($_POST['uid']) && isset($_POST['imageName']) && isset($_POST['nameOfCreator']) ) { $quotes_id = $_POST['quotes_id']; $quote = $_POST['quote']; $uid = $_POST['uid']; $imageName = $_POST['imageName']; $nameOfCreator = $_POST['nameOfCreator']; // include db connect class require_once __DIR__ . '/db_connect.php'; // connecting to db $db = new DB_CONNECT(); // mysql update row with matched pid $result = mysql_query("INSERT INTO quotes SET quote = '$quote', uid = '$uid', imageName = '$imageName', nameOfCreator = '$nameOfCreator'"); // check if row inserted or not if ($result) { // successfully updated $response["success"] = 1; $response["message"] = "Product successfully updated."; // echoing JSON response echo json_encode($response); } else { } } else { // required field is missing $response["success"] = 0; $response["message"] = "Required field(s) is missing"; // echoing JSON response echo json_encode($response); } ?> 

and the following is my method which I called on a button click:

private void setData() { Map<String, String> jsonParams = new HashMap<String, String>(); jsonParams.put(StaticVariables.QUOTES_ID, null); jsonParams.put(StaticVariables.QUOTE, "ööö"); jsonParams.put(StaticVariables.UID, "112"); jsonParams.put(StaticVariables.IMAGE_NAME, "112v1.jpg"); jsonParams.put("nameOfCreator", "aa"); JsonObjectRequest myRequest = new JsonObjectRequest( Request.Method.POST, StaticVariables.url_insert_quote, new JSONObject(jsonParams), new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { // verificationSuccess(response); Log.e("JA", "nice"); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // verificationFailed(error); } }) { @Override public Map<String, String> getHeaders() throws AuthFailureError { HashMap<String, String> headers = new HashMap<String, String>(); headers.put("Content-Type", "application/json; charset=utf-8"); headers.put("User-agent", "My useragent"); return headers; } }; AppController.getInstance().addToRequestQueue(myRequest, "tag"); } 

But no row will be inserted in my mysql database.. Additionally, I have set INTERNET PERMISSION and everything that is necessary for a internet connection.

2
  • First check if your php code is correct. This might help: stackoverflow.com/questions/29442977/… Commented Dec 3, 2015 at 17:59
  • yes that was helpful, thank you, I checked my php script Commented Dec 3, 2015 at 18:12

1 Answer 1

2

Try this code it worked for me in android app, and you have to use another url to post :

private void registerUser(){ final String username = editTextUsername.getText().toString().trim(); final String password = editTextPassword.getText().toString().trim(); StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL, new Response.Listener<String>() { @Override public void onResponse(String response) { //do stuffs with response of post } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { //do stuffs with response erroe } }){ @Override protected Map<String,String> getParams(){ Map<String,String> params = new HashMap<String, String>(); params.put(KEY_PASSWORD,password); params.put(KEY_EMAIL, email); return params; } }; RequestQueue requestQueue = Volley.newRequestQueue(this); requestQueue.add(stringRequest); } 

I'm not sure with you php code, but above android part works,

you may know that you have to,

Add internet permission :

<uses-permission android:name="android.permission.INTERNET" /> 

Add volley to build.gradle:

compile 'com.mcxiaoke.volley:library:1.0.19' 

Thanks

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.