2
我想使用volley發佈數據。使用volley php發佈數據
這是我的PHP腳本:
<?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);
}
?>
和下面是我的方法,我把它叫做一個按鈕點擊:
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");
}
但沒有行會在我的MySQL數據庫插入.. 此外,我設置了INTERNET PERMISSION和互聯網連接所需的一切。
首先檢查你的PHP代碼是正確的。這可能有所幫助:http://stackoverflow.com/questions/29442977/volley-jsonobjectrequest-post-parameters-no-longer-work – rafid059
是的,這是有幫助的,謝謝,我檢查了我的PHP腳本 – fabiruu111