Androidでのマルチパート送信
上記参考サイトのものは、良く出来るけれど、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バイトずつの転送にするか、転送のリミットを指定して
ごみが送られないようにする。
TODO 改善したサンプルコードの記述
注意点
マルチパートに限らないが、Android 3.0以上では、メインスレッドでhttpにアクセスすると
android.os.NetworkOnMainThreadExceptionが出てしまう。
注意点2
こちらも、マルチパートに限らないが、Androidマニフェストファイルに、INTERNET接続を
許可しないと、Host not foundになってしまう。忘れずに、
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
を記述しておく。
2013/7/6
最終更新:2013年07月06日 15:01