Android_マルチパートでポスト

「Android_マルチパートでポスト」の編集履歴(バックアップ)一覧はこちら

Android_マルチパートでポスト」(2013/07/06 (土) 15:01:41) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

[[トップページ]] > [[Android]] > マルチパートでポスト ** Androidでのマルチパート送信 Androidの標準のライブラリだけだと出来ないっぽいので、 http://d.hatena.ne.jp/glass-_-onion/20110611/1307799129 で公開されたライブラリのようなものを、自分で作成するのが良いと思う。 上記参考サイトのものは、良く出来るけれど、2つの点で改良した方が良いと思われる(2013/7/6現在)。 1. mimetypeが画像専用になっている String[] fileChunks = fileName.split("\\."); String fileType = "image/" + fileChunks[fileChunks.length - 1]; 画像以外のファイルを添付する場合は、mimetypeをかえられるようにしたい。 2. バイト単位で送信するときに、問題あり。 while(fis.read(b) > 0) { bo.write(b); } の部分で、10バイトずつ送っているが、最後が10バイトできっちり遅れない場合、ごみが 数バイト分、付与されてしまう。1バイトずつの転送にするか、転送のリミットを指定して ごみが送られないようにする。 また、マルチパートのboundaryが固定なので、 http://stackoverflow.com/questions/2071257/generating-multipart-boundary を参考に、ランダムでboundaryが作られるようにしたい。 TODO 改善したサンプルコードの記述 *** 注意点 マルチパートに限らないが、Android 3.0以上では、メインスレッドでhttpにアクセスすると android.os.NetworkOnMainThreadExceptionが出てしまう。 http://shirusu-ni-tarazu.hatenablog.jp/entry/2013/01/20/033030 に、AsyncTaskを使用したわかりやすい対応方法が書いてあるので、それを参考に。 *** 注意点2 こちらも、マルチパートに限らないが、Androidマニフェストファイルに、INTERNET接続を 許可しないと、Host not foundになってしまう。忘れずに、 <uses-permission android:name="android.permission.INTERNET"></uses-permission> を記述しておく。
[[トップページ]] > [[Android]] > マルチパートでポスト ** Androidでのマルチパート送信 Androidの標準のライブラリだけだと出来ないっぽいので、 http://d.hatena.ne.jp/glass-_-onion/20110611/1307799129 で公開されたライブラリのようなものを、自分で作成するのが良いと思う。 上記参考サイトのものは、良く出来るけれど、2つの点で改良した方が良いと思われる(2013/7/6現在)。 1. mimetypeが画像専用になっている String[] fileChunks = fileName.split("\\."); String fileType = "image/" + fileChunks[fileChunks.length - 1]; 画像以外のファイルを添付する場合は、mimetypeをかえられるようにしたい。 2. バイト単位で送信するときに、問題あり。 while(fis.read(b) > 0) { bo.write(b); } の部分で、10バイトずつ送っているが、最後が10バイトできっちり遅れない場合、ごみが 数バイト分、付与されてしまう。1バイトずつの転送にするか、転送のリミットを指定して ごみが送られないようにする。 また、マルチパートのboundaryが固定なので、 http://stackoverflow.com/questions/2071257/generating-multipart-boundary を参考に、ランダムでboundaryが作られるようにしたい。 TODO 改善したサンプルコードの記述 *** 注意点 マルチパートに限らないが、Android 3.0以上では、メインスレッドでhttpにアクセスすると android.os.NetworkOnMainThreadExceptionが出てしまう。 http://shirusu-ni-tarazu.hatenablog.jp/entry/2013/01/20/033030 に、AsyncTaskを使用したわかりやすい対応方法が書いてあるので、それを参考に。 *** 注意点2 こちらも、マルチパートに限らないが、Androidマニフェストファイルに、INTERNET接続を 許可しないと、Host not foundになってしまう。忘れずに、 <uses-permission android:name="android.permission.INTERNET"></uses-permission> を記述しておく。 2013/7/6

表示オプション

横に並べて表示:
変化行の前後のみ表示: