You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java移动端应用调用JSONplaceholder接口返回null求助

解决Java移动端调用JSONPlaceholder返回null的问题

以下是针对你遇到问题的具体排查和解决步骤:

  • 检查网络权限与明文流量设置
    如果你开发的是Android应用,必须在AndroidManifest.xml中添加网络权限:

    <uses-permission android:name="android.permission.INTERNET" />
    

    若你的应用目标是Android 9(API 28)及以上,由于默认禁止明文HTTP流量,而JSONPlaceholder支持HTTPS,建议直接使用https://jsonplaceholder.typicode.com作为请求域名;若仍需使用HTTP,需在<application>标签中添加:

    android:usesCleartextTraffic="true"
    
  • 确保请求地址与调用方式正确
    确认请求的接口地址无误,例如使用JSONPlaceholder的示例接口:https://jsonplaceholder.typicode.com/posts/1。同时注意:Android主线程不允许直接执行网络请求,必须使用异步方式:
    以OkHttp为例,使用异步回调而非同步执行:

    OkHttpClient client = new OkHttpClient();
    Request request = new Request.Builder()
            .url("https://jsonplaceholder.typicode.com/posts/1")
            .build();
    client.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            e.printStackTrace(); // 打印错误堆栈,定位失败原因
        }
        @Override
        public void onResponse(Call call, Response response) throws IOException {
            if (response.isSuccessful()) {
                String responseBody = response.body().string();
                // 处理响应内容
            } else {
                int statusCode = response.code();
                // 处理错误状态码
            }
        }
    });
    
  • 捕获并打印异常信息
    无论使用OkHttp还是HttpURLConnection,都要捕获所有IOException并打印完整堆栈信息,这是定位问题最直接的方式——null响应往往是请求根本没成功发起,异常信息会告诉你是连接超时、DNS解析失败还是其他网络问题。

  • 排查网络环境
    尝试切换手机流量(而非WiFi)测试,排除WiFi代理、局域网限制导致的连接失败问题。

从你提供的截图来看,代码存在在主线程执行网络请求的问题(Android 3.0+主线程禁止网络操作),这会直接导致请求失败,进而出现响应码或响应体为null的情况。

内容的提问来源于stack exchange,提问作者Evgen Polivanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:35:31