1: 2016-08-23 (火) 05:20:42 njf[4] [5] [6] | 現: 2016-08-23 (火) 13:27:43 njf[4] [7] [8] | ||
---|---|---|---|
Line 1: | Line 1: | ||
Androidの標準APIで用意されていたHttpClientはFroyo以降では使えなくなるので、HttpURLConnectionに移行しました。 | Androidの標準APIで用意されていたHttpClientはFroyo以降では使えなくなるので、HttpURLConnectionに移行しました。 | ||
- | 実際の開発にはOkHttpなどが人気のようですが、設定ファイルを取得するなどの簡単な物ならHttpURLConnectionで十分です。 | + | いろいろな機能を使うような開発にはOkHttpなどのほうが人気のようですが、設定ファイルを取得するなどの簡単な物ならHttpURLConnectionで十分です。 |
GETでページの情報だけを取ってくるなら、 | GETでページの情報だけを取ってくるなら、 | ||
Line 7: | Line 7: | ||
URL url = new URL(YOUR_URL); | URL url = new URL(YOUR_URL); | ||
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); | HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); | ||
- | try { | + | try { |
- | InputStream in = new BufferedInputStream(urlConnection.getInputStream()); | + | InputStream in = new BufferedInputStream(urlConnection.getInputStream()); |
- | byte bodyByte[] = new byte[1024]; | + | byte bodyByte[] = new byte[1024]; |
- | int readLen = in.read(bodyByte); | + | int readLen = in.read(bodyByte); |
- | in.close(); | + | in.close(); |
- | return new String(bodyByte,0,readLen, "UTF-8"); | + | return new String(bodyByte,0,readLen, "UTF-8"); |
+ | }catch (Exception e){ | ||
+ | urlConnection.disconnect(); | ||
+ | Log.d(LOG_TAG,"connection error"); | ||
+ | return null; | ||
+ | } | ||
}catch (Exception e){ | }catch (Exception e){ | ||
- | urlConnection.disconnect(); | + | Log.d(LOG_TAG,"new URL error"); |
- | Log.d(LOG_TAG,"connection error"); | + | |
return null; | return null; | ||
} | } | ||
+ | |||
} | } | ||
このようになります。ここでbyte[1024]はページのサイズに合わせてそれより大きな値に変更してください。 | このようになります。ここでbyte[1024]はページのサイズに合わせてそれより大きな値に変更してください。 | ||
また、UIスレッドからネットワークにアクセスするとエラーになるのは以前と同じなので、その場合はAsyncTaskなどを使う必要があります。 | また、UIスレッドからネットワークにアクセスするとエラーになるのは以前と同じなので、その場合はAsyncTaskなどを使う必要があります。 |
(This host) = https://njf.jp