【发布时间】:2016-12-07 10:53:08
【问题描述】:
我尝试将数据放入我的数据库,但我遇到了主题中的异常。可能是将 String 转换为 JSONObject 的问题,但我不知道如何解决这个问题。
这是我的OrderRequest:
public OrderRequest(String orderNumber, String date, String adress, int phone, String email, String orderCode, int price, String time, int state, Response.Listener<String> listener){
super(Method.POST, ORDER_REQUEST_URL, listener, null);
params = new HashMap<>();
params.put("ordernumber", orderNumber);
params.put("data", date);
params.put("adress", adress);
params.put("phone", phone + "");
params.put("email", email);
params.put("ordercode", orderCode);
params.put("price", price + "");
params.put("time", time);
params.put("state", state + "");
}
@Override
public Map<String, String> getParams(){
return params;
}
这是我的 PHP 代码:
<?php
$con = <-here is password, etc...
$ordernumber = $_POST["ordernumber"];
$date = $_POST["date"];
$adress = $_POST["adress"];
$phone = $_POST["phone"];
$email = $_POST["email"];
$ordercode = $_POST["ordercode"];
$price = $_POST["price"];
$time = $_POST["time"];
$state = $_POST["state"];
$statement = mysqli_prepare($con, "INSERT INTO order (ordernumber, date, adress, phone, email, ordercode, price, time, state) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "sssissisi", $ordernumber, $date, $adress, $phone, $email, $ordercode, $price, $time, $state);
mysqli_stmt_execute($statement);
$response = array();
$response["success"] = true;
echo json_encode($response);
?>
这是我的 Java 代码:
Response.Listener<String> responsListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
boolean success = jsonResponse.getBoolean("success");
if (success) {
Intent intent = new Intent(FinalizeActivity.this, LoggedActivity.class);
FinalizeActivity.this.startActivity(intent);
} else {
}
} catch (JSONException e) {
e.printStackTrace();
}
}
};
OrderRequest orderRequest = new OrderRequest(orderNumberO, dateO, adressO, phoneO, emailO, orderCodeO, priceO, timeO, stateO, responsListener);
RequestQueue queue = Volley.newRequestQueue(FinalizeActivity.this);
queue.add(orderRequest);
}
}
});
在我的应用程序的其他地方,我有一个类似的代码,然后它就可以工作了。
【问题讨论】:
-
您在某处回显 HTML,这就是您的异常告诉您的。由于 HTML 无法解析为 JSON,因此会出现异常
-
是
data而不是date在php代码中寻找错别字 -
您会收到包含 HTML 内容的响应,并且在此行中的 `new JSONObject(response);` 它无法转换它。首先找出您的响应是什么,然后如果它是 json 格式,则将其转换
标签: java android json android-volley