Android 网络请求失败页面,okHttpClient发起网络请求失败

在Android应用中,尝试在主线程执行网络请求时遇到`android.os.NetworkOnMainThreadException`错误。错误原因是Android禁止在主线程进行网络操作。解决方法包括:1) 使用`StrictMode`允许网络访问;2) 创建子线程处理网络请求;3) 使用异步请求如`OkHttpClient`的`enqueue`方法。实际应用中,通常选择在子线程或使用异步请求以避免阻塞UI并获取返回值。
摘要由CSDN通过智能技术生成

Android中发送HTTP请求,报错如下

E/AndroidRuntime: FATAL EXCEPTION: main

Process: cn.iyikong.managementterminal, PID: 4447

android.os.NetworkOnMainThreadException

at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1571)

at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:115)

at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)

at java.net.InetAddress.getAllByName(InetAddress.java:1152)

at okhttp3.Dns$Companion$SYSTEM$1.lookup(Dns.kt:48)

at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:160)

at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:125)

at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:71)

at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:199)

at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:109)

at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:77)

at okhttp3.internal.connection.Transmitter.newExchange$okhttp(Transmitter.kt:162)

at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:35)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)

at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:82)

at okhttp3.interna

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值