お世話になっております。
現在、私はWeb APIにてJsonStringを取得するクラスを作成しています。
ですが、response変数を生成する前に以下のエラーを吐きます。
kotlin
1// この時点でNETの権限は確認済み 2 3val URL = "http://〇〇:××/api" 4 5val request = Request.Builder() 6 .url(URL) 7 .build() 8 9val response = IISCertificateOKInstance().newCall(request).execute() 10 11fun IISCertificateOKInstance():OkHttpClient{ 12 // すべてのSSL証明書を許可したクライアントを返している 13 // ソースは省略 14}
error
1java.net.SocketTimeoutException: failed to connect to /〇〇 (port ××) from /△△ (port ◇◇) after 10000ms
最初はAPIのURLかサーバーのIPアドレスかポート番号が違っているのかと考えていたのですが、
実行環境をエミュレーターから実機に変更し、実機のwifi通信をoffにしてみると上記エラーは返してきませんでした。
調べてみると△△の部分はandroidに接続されているwifiのIPアドレスであることがわかりました。
ですが、◇◇の部分がwifiのポート番号なのかは確かな確証を得ることができませんでした。
(エラーがなかったからと言ってAPIのresponse情報が返ってきたのかといわれると実際にはアプリがクラッシュしましたが、今回は置いときます)
かといって、実際にAndroidでアプリケーションを使う際、いちいちwifiを切ったりするのはいかがなものかと考えます。
では、どうすればAndroidがwifi接続されている状態でもAPIは叩けるのか、
その方法、および上記の解決方法を教えてください
回答1件
あなたの回答
tips
プレビュー