HttpURLConnection が例外が出て機能しない

1,160 views
Skip to first unread message

藤原拓也

unread,
Jun 3, 2020, 2:25:18 AM6/3/20
to 日本Androidの会
http://weather.livedoor.com/forecast/webservice/json/v?city=(ID)

を用いてAndroid上で天気情報を取得しようとしているのですが、connectメソッド等を使用するとIOExceptionをスローされて
接続することが出来ません。
URLオブジェクトを作り、コネクションを取得する所までは例外を吐いていませんでしたが、
connect()で接続を開始したり、ストリームを取得しようとすると軒並みIOExceptionを吐かれます。

private static final String API_ENDPOINT = "http://weather.livedoor.com/forecast/webservice/json/v?city=400040";

public static void  connectionTest() throws IOException {

//接続するURLを指定する
URL url = new URL(API_ENDPOINT);

//コネクションを取得する
HttpURLConnection con = (HttpURLConnection) url.openConnection(); //ここまでは上手く行ってる?

con.connect(); 

}

マニフェストにpermissionを追加して、手順通りにやったつもりなんですが、吐かれる例外が全てIOExceptionなので
原因がわかりません。
ちなみに最初はサブスレッドで接続をしようとしていたのですが、その時も同じ状態でした。

こういった場合どんな問題が発生しているのでしょうか?

Hirokazu Fukami

unread,
Jun 3, 2020, 2:31:07 AM6/3/20
to android-g...@googlegroups.com
こんにちはfkmです。

IOExceptionのメッセージ部分にヒントがあるので、落ちたときのログを貼ってください
> --
> このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
> このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/android-group-japan/eef34d5f-d01f-4404-8e7e-a18e383e311f%40googlegroups.com にアクセスしてください。



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

藤原拓也

unread,
Jun 3, 2020, 10:13:19 AM6/3/20
to 日本Androidの会
fkm さん よろしくお願い致します。

以下logcatのエラー部分です。
2020-06-03 23:01:03.473 415-415/? E/wifi_forwarder: RemoteConnection failed to initialize: RemoteConnection failed to open pipe
2020-06-03 23:01:47.327 409-409/? E/netmgr: Failed to open QEMU pipe 'qemud:network': Invalid argument
2020-06-03 23:01:50.692 3455-16610/com.google.android.gms.persistent E/WakeLock: GCM_HB_ALARM release without a matched acquire!

また、スローされたIOException をtoStringで表示したところ
java.io.IOException: CleartextHTTP traffic to weather.livedoor.com not permitted
と表示されました。

2020年6月3日水曜日 15時31分07秒 UTC+9 fkm:
こんにちはfkmです。

IOExceptionのメッセージ部分にヒントがあるので、落ちたときのログを貼ってください

On Wed, Jun 3, 2020 at 3:25 PM 藤原拓也 <taku...@gmail.com> wrote:
>
> http://weather.livedoor.com/forecast/webservice/json/v?city=(ID)
>
>
> を用いてAndroid上で天気情報を取得しようとしているのですが、connectメソッド等を使用するとIOExceptionをスローされて
>
> 接続することが出来ません。
>
> URLオブジェクトを作り、コネクションを取得する所までは例外を吐いていませんでしたが、
>
> connect()で接続を開始したり、ストリームを取得しようとすると軒並みIOExceptionを吐かれます。
>
>
> private static final String API_ENDPOINT = "http://weather.livedoor.com/forecast/webservice/json/v?city=400040";
>
>
> public static void  connectionTest() throws IOException {
>
>
> //接続するURLを指定する
> URL url = new URL(API_ENDPOINT);
>
> //コネクションを取得する
> HttpURLConnection con = (HttpURLConnection) url.openConnection();  //ここまでは上手く行ってる?
>
> con.connect();
>
>
> }
>
>
> マニフェストにpermissionを追加して、手順通りにやったつもりなんですが、吐かれる例外が全てIOExceptionなので
>
> 原因がわかりません。
>
> ちなみに最初はサブスレッドで接続をしようとしていたのですが、その時も同じ状態でした。
>
>
> こういった場合どんな問題が発生しているのでしょうか?
>
> --
> このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには android-group-japan+unsub...@googlegroups.com にメールを送信してください。

Hirokazu Fukami

unread,
Jun 3, 2020, 10:33:17 AM6/3/20
to android-g...@googlegroups.com
こんばんはfkmです。

> CleartextHTTP traffic to weather.livedoor.com not permitted
targetSdkVersion >= 28で、httpsではなくhttp通信しているのが原因に見えます。
オプトアウトが必要です。下記公式ドキュメントを参照してください
https://developer.android.com/training/articles/security-config?hl=ja#CleartextTrafficPermitted
>> > このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
>> > このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/android-group-japan/eef34d5f-d01f-4404-8e7e-a18e383e311f%40googlegroups.com にアクセスしてください。
>>
>>
>>
>> --
>> -------------------------------------------------------------
>> 深見 浩和(Hirokazu Fukami)
>>
>> URI:http://www.fkmsoft.jp
>> email: f...@fkmsoft.jp
>
> --
> このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
> このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/android-group-japan/c625a755-65fb-4aa9-a852-57e6d7fef579%40googlegroups.com にアクセスしてください。

MIYAZAKI Shin

unread,
Jun 3, 2020, 9:02:30 PM6/3/20
to android-g...@googlegroups.com
こんにちは

APIの呼び出しURLも間違ってますよ。
http://weather.livedoor.com/weather_hacks/webservice  

2020年6月3日(水) 23:13 藤原拓也 <taku...@gmail.com>:

2020年6月3日水曜日 15時31分07秒 UTC+9 fkm:
> このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
> このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/android-group-japan/eef34d5f-d01f-4404-8e7e-a18e383e311f%40googlegroups.com にアクセスしてください。



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。

藤原拓也

unread,
Jun 4, 2020, 3:11:57 AM6/4/20
to 日本Androidの会
お二方ありがとうございます。

教えていただいたドキュメントを参考にHttp接続を許可しました所、無事通信できました。
また、APIも古い情報だったのか間違っており、教えていただいたものを使用させていだきました。

今回の件で、Exceptionエラーは、メッセージを見るといいと言う事が勉強になりました。
非常に助かりました。ありがとうございました。m(_ _ )m

2020年6月4日木曜日 10時02分30秒 UTC+9 shinm:
こんにちは

APIの呼び出しURLも間違ってますよ。
http://weather.livedoor.com/weather_hacks/webservice  


2020年6月3日水曜日 15時31分07秒 UTC+9 fkm:
> このグループから退会し、グループからのメールの配信を停止するには android-group-japan+unsub...@googlegroups.com にメールを送信してください。
> このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/android-group-japan/eef34d5f-d01f-4404-8e7e-a18e383e311f%40googlegroups.com にアクセスしてください。



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-japan+unsub...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/android-group-japan/c625a755-65fb-4aa9-a852-57e6d7fef579%40googlegroups.com にアクセスしてください。
Reply all
Reply to author
Forward
0 new messages