我对android开发来说还很陌生,所以这是向前迈出的一步,每当我发现问题时就向后退两步。我在使用OkHttp库发出请求时遇到了麻烦。我最初使用Volley并可以正常工作,但是我使用的API端点要求Volley不支持的一些DELETE方法请求中有一个正文。
我的Activity的onStart方法中具有以下内容。
final Request request = new Request.Builder()
.url("<some url>")
.addHeader("Authorization", "<some token>")
.build();
new Thread(() -> {
try(Response response = mClient.newCall(request).execute()) {
final String body = response.body() != null ? response.body().string() : null;
runOnUiThread(() -> {
if (body != null && !body.isEmpty()) {
Log.d(TAG, "Successful response");
}
else {
Log.d(TAG, "No body in response");
}
});
}
catch(final IOException error) {
runOnUiThread(() -> {
Log.d(TAG, "Exception: " + error.getMessage());
});
}
});
但是,android studio的网络分析器没有显示任何内容,并且未记录日志消息,但是我不知道是否正确执行了此操作。我确实按照Volley所述工作了,但是Volley在内部处理后台进程,所以这是我第一次尝试使用它。我最初在runOnUIThread之外有Log消息,因为它实际上并没有触及UI,我认为它不需要包含在其中(没有错误,尽管仍然没有日志)
当活动运行时,我确实在调试窗口中获得了此输出,但是我真的不知道这意味着什么,或者它是否告诉我关于为什么我看不到请求的任何有用信息。
W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@5afe552
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
W/etefromplaylis: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setUseSessionTickets(Z)V (light greylist, reflection)
Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setHostname(Ljava/lang/String;)V (light greylist, reflection)
Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->getAlpnSelectedProtocol()[B (light greylist, reflection)
Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setAlpnProtocols([B)V (light greylist, reflection)
W/etefromplaylis: Accessing hidden method Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (light greylist, reflection)
Accessing hidden method Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V (light greylist, reflection)
Accessing hidden method Ldalvik/system/CloseGuard;->warnIfOpen()V (light greylist, reflection)
答案 0 :(得分:0)
我刚刚意识到我从未在Thread上调用过start()。就是这样。