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

时间:2016-08-06 17:23:51

标签: 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 response = client.newCall(request).execute();

谁能帮助我吗?如果没有,你能建议我另一个http请求库吗? 我有android 5.1(miui 8),这里是logcat错误: http://pastebin.com/5LtdxvpG 第42行是这样的: 的 Response response = client.newCall(request).execute();

2 个答案:

答案 0 :(得分:1)

确保您已在AndroidManifest.xml文件中声明了Internet权限:

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

答案 1 :(得分:0)

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

选中此项以了解如何解决问题:How to fix android.os.NetworkOnMainThreadException?