Androidの使用HttpUrlConnectionアクセスネットワーク


詳細
  • はAndroidManifestにあります.xmlでネットワークアクセス権を宣言する
  • Stringタイプに従って新規URLオブジェクト
  • を作成する.
  • URLオブジェクトを強制的にHttpURLConnectionタイプに変換し、openConnectionメソッドを使用してリンク
  • を開きます.
  • リンクの読み出しと接続タイムアウト
  • を設定する.
  • 設定要求方法はGET
  • である.
  • リンクから入力ストリームを得るInputStream
  • bufferを設定し、bufferを循環変数として入力ストリームを読み出してByteArrayOutputStream
  • に書き込む.
  • は、伝達String構造方法ByteArrayOutputStreamにより構成する.toArray()メソッドの結果,ネットワーク入力のローカライズ
  • を実現する.
    コードの例を次に示します.
    InputStream is = null;
    		ByteArrayOutputStream baos = null;
    		try {
    			URL netUrl = new URL(url); //2
    			//       
    			HttpURLConnection conn = (HttpURLConnection) netUrl.openConnection(); //3
    			conn.setReadTimeout(5*1000);
    			conn.setConnectTimeout(5*1000); //4
    			conn.setRequestMethod("GET"); //5
    			
    			is = conn.getInputStream(); //6
    			int len = -1;
    			byte[] buffer = new byte[128]; //7
    			baos = new ByteArrayOutputStream();
    			//     
    			while((len = is.read(buffer)) != -1) {
    				baos.write(buffer, 0, len);
    			}
    			baos.flush(); //     
    			result = new String(baos.toByteArray()); //8      
    			
    		} catch (MalformedURLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} finally {
    			// lose all the resources!!
    			if (baos != null) {
    				try {
    					baos.close();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    			if (is != null) {
    				try {
    					is.close();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    		}

    各ステップの操作はコメントのシーケンス番号に対応します.