ページへ戻る

− Links

 印刷 

Android​/HttpClientからHttpURLConnectionへ移行する の変更点 :: NJF Wiki

xpwiki:Android/HttpClientからHttpURLConnectionへ移行する の変更点

« Prev[3]  
1: 2016-08-23 (火) 05:20:42 njf[4] ソース[5] バックアップ No.1 を復元して編集[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などを使う必要があります。
« Prev[3]