【Androidアプリ開発】okhttpでHTTPリクエストを行う方法
salmoncode
TechTopic
リアルタイムなチャットや通知などを実装する場合、WebSocket通信が有効です。
Androidでは、HTTPクライアントライブラリの okhttp がWebSocketを標準サポートしており、簡潔なコードでリアルタイム通信を実現できます。
この記事では、okhttpのWebSocketクライアントを使って接続・送受信・切断処理を行う手順を紹介します。
まずは、build.gradle にokhttpの依存関係を追加します。
以下の例では、wss://echo.websocket.events という公開テストサーバーに接続します。
📌 ポイント
OkHttpClient.newWebSocket() は非同期で動作します。WebSocketListener の各コールバックでログ出力・UI更新を行うと便利です。ネットワーク断やサーバー側切断に備えるには、再接続ロジックを追加します。
onFailure() でこの関数を呼び出すことで、一定間隔で再接続可能になります。
トークン認証を行う場合、リクエストヘッダに追加します。
| 症状 | 原因 | 対処法 |
|---|---|---|
onFailure がすぐ呼ばれる | URLミス or TLS証明書エラー | wss:// → ws:// or 証明書検証を確認 |
| メッセージが届かない | サーバー側実装不備 | echoサーバーなどでテスト |
| 長時間で切断される | Ping送信が無い | 定期的に webSocket?.send("ping") |
この基礎コードをもとに、RecyclerViewなどでチャットUIを作成できます。
👉 参考記事:
【Androidアプリ開発】RecyclerViewでチャットUIを作る(予定)
