【发布时间】:2023-03-17 17:50:02
【问题描述】:
我正在尝试从我的数据库中检索数据。我向这个 PHP 文件发送一个请求:
<?php
require "init.php";
$qrcode = $_POST["qrcode"];
$sql = "select * from cespite where QrCode = $qrcode;";
$result = mysqli_query($con, $sql);
if(mysqli_num_rows($result)==0)
{
$code = "reg_failed";
$message = "Nessun risultato trovato!";
$err = array("code"=>$code, "message"=>$message);
echo json_encode($err);
}
else
{
$row = $result->fetch_all(MYSQLI_ASSOC)[0];
echo json_encode($row);
}
//$mysqli_close($con);
?>
这是我将请求发送到该文件的代码:
final JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response)
{
try
{
Nome.setText(response.getString("Nome"));
Descrizione.setText(response.getString("Descrizione"));
Numinventario.setText(response.getString("NumInventario"));
Foto.setText(response.getString("Foto"));
Dtcatalogazione.setText(response.getString("DtCatalogazione"));
}
catch (JSONException e)
{
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
int j = 21;
}
})
{
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>(1);
params.put("qrcode", richiesta);
return params;
}
};
RegisterRequest.getmInstance(this).addToRequestque(request);
这是我的RegisterRequest 班级:
public class RegisterRequest
{
private static RegisterRequest mInstance;
private RequestQueue requestQueue;
private static Context mCtx;
//default constructor
private RegisterRequest(Context context)
{
mCtx=context;
requestQueue=getRequestQueue();
}
public RequestQueue getRequestQueue()
{
if(requestQueue==null)
{
requestQueue = Volley.newRequestQueue(mCtx);
}
return requestQueue;
}
public static synchronized RegisterRequest getmInstance(Context context)
{
if(mInstance==null)
{
mInstance = new RegisterRequest(context);
}
return mInstance;
}
public void addToRequestque(Request request)
{
requestQueue.add(request);
}
}
我已尝试使用我的调试器。我总是在 onErrorResponse 方法中完成,我不知道为什么,因为我试图从 web 向我的 PHP 文件发送请求并且它工作正常,所以我认为这可能是发送参数的问题到请求。
我得到的错误是Value <br of type java.lang.String cannot be converted to JSONObject。
有什么办法吗?
提前致谢!
编辑:解决了发出字符串请求而不是 jsonobject 请求
【问题讨论】:
-
我认为您请求的 URL 错误。
-
@VladMatvienko 不,这是正确的-_-'
-
使用 PostMan 检查响应
-
错误说你得到的是HTML而不是JSON,所以我仍然认为它是不正确的。或者你没有把你的 PHP 文件放在正确的位置。或者 PHP 不正确。首先通过浏览器或任何其他 HTTP 工具检查您是否会收到 JSON 作为响应。