致命异常:主要:okhttp3.RealCall.execute
FATAL EXCEPTION: main : okhttp3.RealCall.execute
我在 android 应用程序中使用 OkHttp 在单击按钮时向 rapidapi API 发出 Web 请求。我已经在我的清单中添加了 INTERNET 权限和 android:usesCleartextTraffic="true"
。但是我有错误
AndroidRuntime: FATAL EXCEPTION: main
Process: com.ex.fbinstadownloader, PID: 27537
android.os.NetworkOnMainThreadException
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
at okhttp3.RealCall.execute(RealCall.java:77)
at com.ex.fbinstadownloader.MainActivity.StartDwonload(MainActivity.kt:62)
at com.ex.fbinstadownloader.MainActivity.access$StartDwonload(MainActivity.kt:19)
at com.ex.fbinstadownloader.MainActivity$onCreate.onClick(MainActivity.kt:33)
at android.view.View.performClick(View.java:6261)
at android.widget.TextView.performClick(TextView.java:11163)
at android.view.View$PerformClick.run(View.java:23748)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
Application terminated.
我的代码
private fun StartDwonload() {
val url = editText.text.toString()
val client = OkHttpClient()
val requests = Request.Builder()
.url("xxxxxxxxxxigurl="+url)
.get()
.addHeader("x-rapidapi-host", "xxxxxx")
.addHeader("x-rapidapi-key", "xxxxxxx")
.build()
val responses: Response = client.newCall(requests).execute()
print(responses.body()?.string())
}
我是 kotlin 的新手,有任何想法请
您通过此 link 分享 https://play.kotlinlang.org/
的代码,
您同时使用了 OkHttp 和 DownloadManager。
请使用下面的代码,
private fun StartDwonload() {
val url = editText.text.toString()
val client = OkHttpClient()
val requests = Request.Builder()
.url("https://instagram-facebook-media-downloader.p.rapidapi.com/api?igurl="+url)
.get()
.addHeader("x-rapidapi-host", "xxxxxx")
.addHeader("x-rapidapi-key", "xxxxxxx")
.build()
// val responses: Response = client.newCall(requests).execute()
client.newCall(requests).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {}
override fun onResponse(call: Call, response: Response) = println(response.body?.string())
})
}
在我删除此行后正在工作val responses: Response = client.newCall(requests).execute()
我在 android 应用程序中使用 OkHttp 在单击按钮时向 rapidapi API 发出 Web 请求。我已经在我的清单中添加了 INTERNET 权限和 android:usesCleartextTraffic="true"
。但是我有错误
AndroidRuntime: FATAL EXCEPTION: main
Process: com.ex.fbinstadownloader, PID: 27537
android.os.NetworkOnMainThreadException
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
at okhttp3.RealCall.execute(RealCall.java:77)
at com.ex.fbinstadownloader.MainActivity.StartDwonload(MainActivity.kt:62)
at com.ex.fbinstadownloader.MainActivity.access$StartDwonload(MainActivity.kt:19)
at com.ex.fbinstadownloader.MainActivity$onCreate.onClick(MainActivity.kt:33)
at android.view.View.performClick(View.java:6261)
at android.widget.TextView.performClick(TextView.java:11163)
at android.view.View$PerformClick.run(View.java:23748)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
Application terminated.
我的代码
private fun StartDwonload() {
val url = editText.text.toString()
val client = OkHttpClient()
val requests = Request.Builder()
.url("xxxxxxxxxxigurl="+url)
.get()
.addHeader("x-rapidapi-host", "xxxxxx")
.addHeader("x-rapidapi-key", "xxxxxxx")
.build()
val responses: Response = client.newCall(requests).execute()
print(responses.body()?.string())
}
我是 kotlin 的新手,有任何想法请
您通过此 link 分享 https://play.kotlinlang.org/
的代码,
您同时使用了 OkHttp 和 DownloadManager。
请使用下面的代码,
private fun StartDwonload() {
val url = editText.text.toString()
val client = OkHttpClient()
val requests = Request.Builder()
.url("https://instagram-facebook-media-downloader.p.rapidapi.com/api?igurl="+url)
.get()
.addHeader("x-rapidapi-host", "xxxxxx")
.addHeader("x-rapidapi-key", "xxxxxxx")
.build()
// val responses: Response = client.newCall(requests).execute()
client.newCall(requests).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {}
override fun onResponse(call: Call, response: Response) = println(response.body?.string())
})
}
在我删除此行后正在工作val responses: Response = client.newCall(requests).execute()