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 件のコメント:
コメントを投稿