2007年12月21日金曜日

通信に失敗

uGNote+Rでデータのダウンロードに失敗することがあるのだけど、原因が良くわからない
今のところActiveSyncでパソコンとつないだ状態でダウンロードすると問題が無い。だからVisualStudioで現象をデバッグする事ができないので困ってしまいます

失敗したときの例外メッセージが3パターンぐらいあります


(1) だいたいアプリ起動直後に初めてダウンロードする場合に出るエラー
ネットワーク接続が開通していないか、接続先が認識できていないみたい
リロードさせるとうまくいく場合がある。それでもダメならアプリを立ち上げなおさなければいけない



(2)Googleのユーザー認証時にSSL通信をするので、そのときに失敗している
リロードすると成功する



(3) ダウンロードしたデータに問題があるみたい
XMLのパーサが例外を起こしてる。滅多に出ないけど、このエラーが出ると暫くダウンロードが出来ない

何がいけないのですかね~
(1),(2)は HttpWebRequestを使ってPOSTしているだけのつもりなんですが、何か忘れてることがあるのか...

認証idを取得するところのソースはこんな感じです


string param = "Email=" + email + "&Passwd=" + password + "&service=cl&source=Gulp-CalGulp-1.05";
byte[] data = Encoding.ASCII.GetBytes(param);
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uGnotePR.Properties.Resources.URL_GOOGLELOGIN);
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = data.Length;

Encoding enc = Encoding.UTF8;
Stream reqStream = req.GetRequestStream();
reqStream.Write(data, 0, data.Length);
reqStream.Close();
WebResponse res = req.GetResponse();
Stream resStream = res.GetResponseStream();
StreamReader sr = new StreamReader(resStream, enc);
....


Posted by Picasa

2 件のコメント:

dawnpurple さんのコメント...

おとーぽんさん、あけましておめでとうございます。本年もよろしくお願いいたします。

uGNote+Rを使わせていただいていますが、
リモートを解決できないと言うエラーは結構でますね。一度サスペンドした場合とか、通信関連で起きるようです。
開きなおせば大体問題ないのですが、一度だけ開き直しだけではダメで、アカウント登録画面を登録しなおしたら直ったことがありました。
便利に使わせていただいておりますので、また時間ができたら改良をお願いいたします。

おとーぽん さんのコメント...

dawnpurpleさんコメントありがとうございます

エラーでますよね...
何か初期化ミスしてたりするのか?と思いながら、まだ解決できてないです