Volley 字符串请求返回空响应

Volley String Request returning an empty response

我使用 PHP 制作了一个 REST api,然后我将其托管在托管商中,您可以访问 api here(只包含一个json数据)。在我的浏览器中,我可以获得 json 数据。但在 android 工作室中,响应 returns 一个空字符串。

这是api

的内容
{"FurnitureID":"4","Name":"Caesar Chair","Description":"It is part of the Fiber chair family. The armchair has a smooth, curved shell covered in a bio-composite material which includes 25% wood fibers. The other side of chairs, one with a tube base and one with a wood base. It is both simple and elegant, with gentle curves and a lightweight appearance. Any of these would make great contemporary dining chairs for minimalist and classy settings.","AR_Object":"modern.glb","Image":"modern_chair.jpg","Price":"2,500.00","Category":"chair","isFavorite":false}

这就是 logcat 所说的

2021-12-04 12:25:01.714 1273-1448/com.example.ar_furniture D/NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true
2021-12-04 12:25:01.718 1273-1448/com.example.ar_furniture I/DpmTcmClient: RegisterTcmMonitor from: $Proxy0
2021-12-04 12:25:02.443 1273-1448/com.example.ar_furniture E/Volley: [10014] NetworkUtility.shouldRetryException: Unexpected response code 503 for https://ar-furniture-cf.preview-domain.com/ar-furniture-server/furnitures/getFurnitureDetails/4/1
2021-12-04 12:25:04.376 1273-1419/com.example.ar_furniture V/FA: Inactivity, disconnecting from the service

这是我的 android 工作室代码

Volley.newRequestQueue(this).add(new StringRequest(
            Request.Method.GET,
            "https://ar-furniture-cf.preview-domain.com/ar-furniture-server/furnitures/getFurnitureDetails/4/1",
            res -> {
                Toast.makeText(this, res, Toast.LENGTH_LONG).show();
            },
            error -> {
                Toast.makeText(this, error.getMessage(), Toast.LENGTH_LONG).show();
            }
        ));

我在 php 中的代码只是使用 PDO

的普通数据获取

不知道是不是主机问题。因为我尝试在 000webhost 中免费托管它,所以它在我的 android 中运行。然后我在 hostinger 支付了一个单一的托管计划,因为我在学校需要它。

顺便说一下,我对数据库使用 mysql

由于响应是一个 JSON 对象,您必须将其转换为

 try{
      JSONObject obj = new JSONObject(response);
    } 
catch (JSONException | NumberFormatException e) {
      e.printStackTrace();
    }

然后按键得到结果like

Log.d("FurnitureID: ", obj.getString("FurnitureID"));
Log.d("Name: ", obj.getString("Name"));

这是一个 link 的完整示例。你也可以检查一下。

杰森是对的。问题是 cloudflare 在进入实际网站之前在我的网站上进行了验证。我通过使用注册域解决了这个问题。因为我认为我使用的域已注册。