2013年5月17日金曜日

【現在】android の multipart で画像投稿【苦戦中】

Esterです。
今週はHTTP multipart POSTの内容で壁にぶち当たっているところです。
 
//javaのお話です。ええ、全く持ってそうです。

今回のはまった(現在系だから "はまっている" が正しいか…)ところは…
URLConnectionオブジェクトを生成して、HTTP通信を開始する
___________________________________
URLConnection connection = new URLConnection("http://hogehoge");


//POSTの設定とかの処理


connetion.connect();  ⬅ ここ
___________________________________
のconnectメソッドです。
ええ、こいつがなかなかやってくれやがります。




どういうことか、といいますと…
URLConnectionクラスっていうのはいってしまえば、指定したページにインターネットを介してアクセスすることができるクラスなのですよん。

んでんでんで、アクセスする際におまけを追加しまくって一緒にデータを送信できるようにしよう、としているのが今です。

例えるなら、ただアクセスするだけじゃなくてどこかのログインページにおける ID と パスワード も一緒に送ろうとしている みたいな。

こういう時に必要になるのがマルチパートってやつです。
マルチパートってのは、通信するデータ(大きな箱をイメージ)にいくつものメッセージ(小さい小物)を詰め込んで、一度に送信できる方法です。

要するに…

あるURLにあくせすしますーって時には

    そこのページくれー

ってだけいっちゃうわけですけどもマルチパートを使えば

    IDはこれよー
    パスワードはこれよー
    限定ページくれー
    どっちか間違ってたらまちがってるっていえー

ぐらいのメッセージを詰め込むことができるわけです。

んでんでんで、マルチパートで画像を送信する時は画像をメッセージにする必要があるんで通信する時に画像をバイナリファイル(人間が読んでもわからないような文字列ファイル)に変換しなければならないわけですねー。
んでんでんで、変換したファイルを一緒に追加する時にマルチパートを使う訳です。

      そこのページくれー
  dsgなじゅあねjfかdんさいえるb;えsgjdkl  ⬅ 画像の文字列バージョン のつもり

って感じですね。



話がもどって…どうなっているか、というと
connection.connect(); の段階でsystemエラーがでちゃってるわけです。
んで例外が走って、なんかよくわからないけどエラーメッセージがnullだから
nullpointerException で返って来る   っていうところまではなんとかエラーを
追いながら理解できたんだけども…

なぜエラーが出ているのか…。




まぁ悩みに悩んでたらどっかの偉い人が URLConnectionクラスじゃなくて HTTPConnectionクラスを使え っていってた気がするからそれで行こうと思っている。

今週中にできるといいんだけどなぁ…。


0 件のコメント:

コメントを投稿