問題タブ [okhttp3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android での OkHttp スレッド優先度の背景
Android では、スレッドの優先順位を に設定しTHREAD_PRIORITY_BACKGROUND
て、他のスレッドがメイン スレッドに干渉しないようにすることをお勧めします。OkHttp は複数のスレッド プール (ディスパッチャー、接続プールなど) を使用しますが、スレッドの優先順位については心配していません。NetworkDispatcher#84の Google Volleyライブラリの例としてTHREAD_PRIORITY_BACKGROUND
OkHttp がスレッドの優先順位を設定しない理由はありますか? Android で使用する場合、スレッド ファクトリをスレッドの優先度をバックグラウンドに設定するものに置き換える必要がありますか?
android - java.lang.NoClassDefFoundError: 次の解決に失敗しました: Lokhttp3/MediaType;
okhttp-3.0.1.jar を使用するとクラッシュします。
okhttp-3.0.1.jarは正常に 動作し、欠落しているクラスがあります。解決のために助けてください。
android - 「応答を返す.body().string()」はokhttp3で空です
次のクラスを作成しました。
以前は、サーバー上の MySQL にデータを書き込むアクティビティから機能していました。そして、次のコードから呼び出すと、空の応答が返されます!
これがlogcatで得られるものです
まとめとして、PostJSON クラスで、正しい結果を System.out に書き込みます。それからそれを返します。しかし、応答は空です。理由がわかりません。
java - Retrofit v2 Call.cancel() はコールバックを削除しますか?
Retrofit v2 API 仕様を読みましたが、カスタム レトロフィット インターフェイスから返された Call クラスで cancel() メソッドを呼び出すと、渡された Callback を null に設定する必要があります。
cancel() は、応答が受信された後はノーオペレーションです。それ以外の場合、メソッドはすべてのコールバックを null に設定します (したがって、匿名で宣言されている場合は、外側のクラスへの強い参照が解放されます)。
コードを調べてみると、キャンセルが呼び出されたときに Callback が明示的に null に設定されていることがわかりません。コールバックがOkHttpCallクラスで参照されていることがわかります(ただし、明示的に格納されていません)。cancel を呼び出すと、キャンセルの HTTP 側を処理する RealCall クラスで cancel が呼び出されますが、AsyncCall クラスに保存されているコールバック (Dispatcher クラスの readyAsyncCalls および runningAsyncCalls キューに置かれている) には関係しません。私にはなじみのないコードなので、何かが欠けている可能性があります。
call オブジェクトで cancel() を呼び出すと、渡した Callback への参照が削除されるため、メモリ リークが発生しないことを誰かが自信を持って確認できますか?
簡略化されたコード例:
android - OkHttpで複数のファイルをダウンロードするには?
OkHttp ライブラリを使用して複数のファイルをダウンロードする必要があります。すべてのダウンロードが完了したら、ユーザーに通知する必要があります。
OkHttp を使用して 1 つのファイルをダウンロードする方法を知っています。コードは次のとおりです。
1 つのファイルだけでなく、すべてのファイルをダウンロードするにはどうすればよいですか?
android - Android OkHttp3 を NewRelic と統合する
私は OkHttp バージョン 3.1.2 (バージョンを変更できないため、最新のピカソとレトロフィット ライブラリを変更できません) を使用しており、チュートリアル NewRelic ライブラリ バージョン 5.4.1 (チュートリアルで述べたように、okhttp2.1+ をサポートしています) を使用してセットアップしています。また、NewRelic はクラッシュを正常に処理しましたが、http トランザクションを処理しませんでした。「Harvester」は常に「Sending 0 HTTP transactions」をログに記録します。しかし、NewRelic.noticeHttpTransaction を使用しようとすると、分析が送信されます。
どうすれば okhttp3.1+ を NewRelic にバインドできますか? それとも、NR が http 要求/エラーを自動的に処理する必要があると思うので、何か間違ったことをしたのでしょうか?
android - OkHttpClient を使用した Cookie の送信
http get/post リクエストを作成するために Okhttp3 を使用しています。
PersistentCookiejar
アプリケーションが閉じられ、後で再開された場合でも Cookieを保持するために使用しています。
ただし、HTTP 呼び出しを行うと、OkHTTpClient は Android デバイスから Web サーバーに Cookie を送信しません。それを解決する方法がわかりません.httpクライアントが各httpリクエストでCookieを送信しない場合、Cookieを永続化する意味がありません.
これは、http クライアントを初期化するために使用しているコードと、http 要求を作成する方法です。
android - Cookie をクライアント リクエスト OkHttp に追加する
だから私はOkhttp 3を使い始め、ウェブ上のほとんどの例は古いバージョンについて話している
OkHttp クライアント要求に Cookie を追加する必要があります。OkHttp 3 ではどのように行われますか?
私の場合、サーバーから受信せずに静的にクライアント呼び出しに追加したいだけです
java - Retrofit2 JSON 応答本文が正しく解析されない
Retrofit2 で応答 JSON としてカスタム クラスを実装する際に問題が発生しています。
呼び出しが成功し、(HttpLoggingInterceptor を使用して) 本文をログに記録すると、JSON が正しくフェッチされていることがわかります。
唯一の問題は、作成したカスタム クラスに解析されないことです。
これが私のServiceGeneratorです:
ServiceInterface は次のとおりです。
そして、これは私が実際にそれを呼んでいるところです:
GsonConverter が応答をカスタム クラス (UserResponse) に変換しない理由はありますか?
さらに明確にするために、実際の JSON 応答 (Postman を使用) を次に示します。
前もって感謝します!
編集1:
興味のある方へ。
String を戻り値の型として使用すると、実際にはすべてのデータが String に書き込まれることがわかりました。
つまり、障害は変換にあるということです。途中のどこかで GSONBuilder を間違えたと思います。