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 在进入实际网站之前在我的网站上进行了验证。我通过使用注册域解决了这个问题。因为我认为我使用的域已注册。
我使用 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 在进入实际网站之前在我的网站上进行了验证。我通过使用注册域解决了这个问题。因为我认为我使用的域已注册。