java - 调用 newCall() 函数会使应用程序崩溃(Android 开发)

标签 java android okhttp

大家好,我正在尝试执行 http 请求,我在互联网上搜索并找到了 OkHttp 库。

我正在尝试示例代码:

OkHttpClient client = new OkHttpClient();

    Request request = new Request.Builder()
            .url("http://www.vogella.com/index.html")
            .build();
    try {
        Response response = client.newCall(request).execute();
    } catch (IOException e) {
        e.printStackTrace();
    }

但是应用程序崩溃了,我试图找到错误,它崩溃的原因是这一行:

响应response = client.newCall(request).execute();

有人能帮我吗?如果没有,你能给我推荐另一个用于 http 请求的库吗? 我有 android 5.1(miui 8),这里是 logcat 错误: http://pastebin.com/5LtdxvpG 第 42 行是: 响应response = client.newCall(request).execute();

最佳答案

从我在您的错误日志(在您的评论中)中看到的内容来看,这是众所周知的“主线程上的网络”异常。发生这种情况是因为 Android 阻止主线程上的网络操作(即您的 HTTP 连接)。

检查此内容以了解如何修复它:How to fix android.os.NetworkOnMainThreadException?

关于java - 调用 newCall() 函数会使应用程序崩溃(Android 开发),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38806903/

相关文章:

java - Mockito - 无需注入(inject)的模拟依赖

java - 模型实例贴花之间的 Libgdx 剔除

java - 在整个应用程序中全局捕获键盘组合以显示 Java 中隐藏的 JDialog

java - 我们可以存储一个即使用户清理缓存和数据也无法删除的密码吗

java - OKHttp3 POST 错误 : Internal Server Error Java Android

android - 拒绝对 OkHttp 中先前失败的类重新初始化

java - jdbc Mysql 嵌套结果集

android - Flutter:如何赋予彩色容器不透明度?

android - 发布适用于 Android 9 (Android API 28) 的 Cordova 应用程序出现互联网连接错误

android - 如何使用 Retrofit2 发出查询数组请求?