問題タブ [okhttp]
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 - HTTP 静的リソース キャッシング フォーエバー ステートジー
効果的な Android HTTP Jesse Wilson では、次のように述べています。
画像などの静的リソースを提供していますか? 永続的な URL を使用して永久にキャッシュする
画像をフェッチしてキャッシュするために、特定のOkHttpインスタンスでPicassoを使用しています。戦略をどのように設定するのか疑問に思っていますか?let it cache forever
Cache-Control: max-stale=
HTTP キャッシュ制御ヘッダー max-stale ( ) を可能な限り高い値でオーバーライドすることしか考えられません。別の (より良い) 方法はありますか?
android - Picasso と OkHttp を使用してキャッシュされたビットマップを更新/変更する
現在、ビットマップ キャッシュに Picasso と OkHttp を使用しています。私がやりたいことは、特定のキャッシュされたビットマップを取得して描画し、ビットマップに描画されたものをメモリとディスク キャッシュに戻すことです。私の実装はかなり標準的です。Target を使用して、読み込まれたビットマップを GridView にあるカスタム ImageView に追加するだけです。私は周りを見回してきましたが、これを行う方法が見つからないようです。これらのライブラリはこのようなものをサポートしていますか?
java - オフライン時にOKHttpを使用してキャッシュデータをレトロフィットできますか
Retrofit & OKHttp を使用して HTTP 応答をキャッシュしようとしています。私はこの要点に従い、最終的にこのコードになりました:
そして、これは Cache-Control ヘッダーを持つ MyApi です
まず、オンラインでリクエストし、キャッシュ ファイルを確認します。正しい JSON 応答とヘッダーがあります。しかし、オフラインでリクエストしようとすると、常にRetrofitError UnknownHostException
. Retrofit がキャッシュから応答を読み取れるようにするために他にすべきことはありますか?
編集:
OKHttp 2.0.xHttpResponseCache
はCache
でsetResponseCache
あるため、setCache
java - OKHTTP を使用して投稿要求を行うには?
jsonをサーバーに投稿している例をいくつか読みました。
誰かが言う:
OkHttp は、Java によって提供される HttpUrlConnection インターフェースの実装です。コンテンツを書き込むための入力ストリームを提供し、そのコンテンツがどのような形式であるかを認識 (または気に) しません。
ここで、名前とパスワードのパラメーターを使用して、URL に通常の投稿を行いたいと考えています。
名前と値のペアを自分でストリームにエンコードする必要があるということですか?
java - okhttp を使用してファイルをアップロードする方法
私は okhttp を httpclient として使用しています。良い API だと思いますが、ドキュメントはそれほど詳細ではありません。
ファイルのアップロードで http 投稿要求を行うためにそれを使用する方法は?
私の質問は:
- 部品名を設定するには?フォームでは、ファイルの名前は file1 にする必要があります。
- フォームに他のフィールドを追加する方法
android - okhttp で SSLv3 フォールバックを無効にする方法
私の Android アプリケーションは、正しいサーバーにアクセスするために SNI に依存しているため、TLS が必要であり、SSLv3 では動作しません。私はokhttpを使用しており、レトロフィットとサーバーログは、TLSハンドシェイクが突然SSLv3に切り替わり、ログ時間の間このままになる可能性があることを示しており、サーバー名表示のサポートがないためにホスト名検証の失敗が繰り返される.
状況によっては (どの状況ですか?)、okhttp が TLS の使用を停止し、フォールバックとして SSL に切り替えることを理解しています。ただし、これは SNI の場合は受け入れられません。フォールバックを無効にする方法はありますか?
Apache ログの例:
android - flush() にもかかわらずデータをアップロードする前に、OkHttp は最大 800kb をバッファリングします。
画像のアップロードの進行状況を公開しようとしています。クライアントとして okhttp を使用してアップロードし、mimecraft を使用してマルチパート ファイルをパッケージ化します。
データがソケットに書き込まれたときにバイトカウントを書き込むログを追加し (正しく判断できる場合は 4kb のチャンクで)、アップロードしました。
問題は、データのチャンクが書き込まれるたびに出力ストリームでフラッシュを呼び出すと、出力ストリームに約 800kb が書き込まれるまで何もアップロードされないように見えることです。そのポイントに達すると、最大 100kb をアップロードするように見え、アプリはさらに 100kb を出力ストリームに書き込み (解放されたスペースのように、もう少し書き込める)、続行します。
この結果、(1.2MB のファイルで) 最初の 800KB がほぼ瞬時に書き込まれ/報告され、次にアップロードが開始され (Charles ネットワーク ソフトウェアを介して追跡されます)、次のファイルで 100KB の読み取り/書き込み/アップロードが開始されます。数秒後、最後のバイトが出力ストリームに書き込まれると、アプリはアップロードの 100% が書き込まれたことを報告します。ただし、ネットワーク クライアントはまだネットワーク バッファにある最後の 800kb をアップロード中であり、それをアップロードするためにさらに 5 ~ 10 秒間そこに留まり、その後リクエストを終了するため、これは当てはまります。
誰かがこの経験をしたことがありますか、またはこれがokhttpで一般的な問題であるかどうかを知っていますか?
乾杯
編集: 800kb 未満のファイルをアップロードする場合、250kb と 500kb をいくつかテストしましたが、それらはすべて、アップロードされる前にすぐにストリームに 100% 書き込まれますが、3 MB の画像でも 800 kb がアップロードされ、約 100 kb のチャンクに分割されます。 、書き込みループがそこにあり、アップロードされるたびに別の 100kb を書き込みます。
android - Picasso がディスク キャッシュから画像を読み込まない
ピカソの画像をインターネットから読み込み、接続なしでディスクキャッシュから読み込みたいです。キャッシュは正常に書き込まれています (画像はキャッシュ ディレクトリにあります)。しかし、読んでいるとき、私はこのログを取得します:
私のプロジェクトには、リクエスト用のレトロフィットとokhttpがあります。そして、この画像には次のCODEがロードされています:
その結果、接続がないと、画像は読み込まれませんが、画像は picasso のキャッシュ ディレクトリにあります (ログにはそのメッセージが表示されます)。
アイデア
Picasso のカスタム Download を使用する場合、レトロフィット リクエスト ヘッダーを変更する必要はないと思います (RequestInterceptor -> インターセプト)。多くの POST および GET リクエストがあり、そのままにしておきたいです。
私がチェックしたいくつかのリンク
picasso ライブラリで独自のディスク キャッシュを実装する方法 - Android?
https://github.com/square/picasso/issues/237
picasso のキャッシュメモリから画像を取得するには?
前もって感謝します。
android - 公開鍵インフラストラクチャで正方形の okHTTP lib を使用する HTTPS/SSL
ここで説明されているように、PKI を使用して HTTPS 経由でデータを送信するプロセス全体を実装する必要がありますhttp://upload.wikimedia.org/wikipedia/commons/9/96/Usage-of-Digital-Certificate.svg
秘密鍵を使用してリクエストに署名する方法 (本当に行う必要がありますか?) と、証明書 (Web サービスから受け取ったもの) を追加する方法を教えてください。
私は自分のキーストア ( http://nelenkov.blogspot.com/2011/12/using-custom-certificate-trust-store-on.html (本当に素晴らしいブログです!)) を作成するために使用される Web サービス RootCA と秘密鍵を持っていますCSR ファイル、および Web サービスによって署名された証明書 (csr を使用)。
私は robospice + square retrofit + square okHttp (または、別の HTTP クライアントを使用しますか?) を使用してリクエストを実行し、独自のものを持っていますSSLSocketFactory
:
webservice はまだ実装されていないため、うまくいくかどうかわかりません。誰かが私が正しい方向に進んでいるかどうかを教えていただければ幸いです。