こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

iアプリでのHTTP通信について

こんばんわ。大変困っています。
現在、iアプリで業務アプリの開発を行っています。
HTTP通信によりサーバ上のテキストファイルを読み込もうとしているのですがどうもうまくいきません。
開発環境はdoja5.1+eclipse3を使用しております。
ADFの設定はPackageURL及びUseNetworkを設定しております。
この状態で以下のソースコードをデバッグ起動すると「httpc.connect();」にてConnectionExceptionが発生し、statusの値は0です。
APIリファレンスを参照しても「UNDEFINED:未定義の例外を表します」とあり、何のこっちゃわかりません。
どんな情報でもいいので宜しくお願いいたします。

以下はHTTP通信部分のソースです。

public String HttpGetTest(){
String strRet="";
try {
HttpConnection httpc = (HttpConnection)Connector.open(getSourceURL()+"test.txt",Connector.READ,true);
httpc.setRequestMethod(HttpConnection.GET);
httpc.connect();
int respCode=httpc.getResponseCode();
String respMsg=httpc.getResponseMessage();
long contentLength=httpc.getLength();
if (respCode == HttpConnection.HTTP_OK) {
byte rcvData[] = new byte[(int)contentLength];
InputStream ips=httpc.openInputStream();
ips.read(rcvData);
ips.close();
strRet = new String(rcvData);
}
httpc.close();
}catch(ConnectionException ce){
Dialog dlgWarning = new Dialog(Dialog.DIALOG_ERROR,"ConnectionException");
dlgWarning.setText(ce.toString() + ":" + ce.getStatus());
dlgWarning.show();
} catch(Exception e){
Dialog dlgWarning = new Dialog(Dialog.DIALOG_ERROR,"Exception");
dlgWarning.setText(e.toString());
dlgWarning.show();
}
return strRet;
}

投稿日時 - 2008-06-08 21:17:56

QNo.4085468

すぐに回答ほしいです

質問者が選んだベストアンサー

では、PCの環境周りでは大丈夫でしょうか?
ブラウザから対象のURLにはアクセスできますか?
HTTPプロキシを使っている場合は、エミュレータにその設定がされていますか?

投稿日時 - 2008-06-12 13:07:35

お礼

アドバイスありがとうございます。
HTTPプロキシのキーワードから無事解決いたしました。
原因はdojaのネットワーク設定にあるHTTPプロキシ関連項目に不要な値を設定していたためでした。
(HTTPプロシキを使用していないのに値を設定していた)
環境構築時に意味もなく設定していたようです。。。
お騒がせ致しました。

以上

投稿日時 - 2008-06-12 14:47:33

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

getSourceURL()の戻り値を、エミュレータと実機で確認してみてください。
エミュレータの[設定]->[アプリケーション動作環境設定]->[ネットワーク設定]->ADFのURL
の設定は正しいですか?

投稿日時 - 2008-06-11 09:12:19

補足

回答ありがとうございます。
さっそく確認いたしました。

PackageURLの設定値は"http://xxxx.xxxxxxxxxx.co.jp/iapr/take/UnUn.jar"です。
実機及びエミュレータにてgetSourceURL()の値を確認しましたが
両方とも"http://xxxx.xxxxxxxxxx.co.jp/iapr/take/"でした。
(xxxx.xxxxxxxxxxの部分は実際とは異なります)
よってPackageURLの設定は正しいと思われます。
宜しくお願い致します。

投稿日時 - 2008-06-11 12:43:30

ANo.1

Connector.openで接続が成立しているので、connectコールは要らないはず。

投稿日時 - 2008-06-09 18:43:06

補足

実は進展?がありました。
上記ソースを含んだiアプリを実機で起動するとテキストファイルが読め、思惑通りの動きをしました。
ただ、エミュレータでは例外は発生します。
どうやら原因はeclipse又はdojaの環境設定と思われます。
このまま実機でのデバッグでは非常に効率が悪いので何とか解決したいと思いますのでアドバイスをお願いいたします。
ちなみにADFの設定はAppName,PackageURL,UseNetwork以外に設定が必要なものはあるでしょうか?
宜しくお願いいたします。

投稿日時 - 2008-06-09 19:25:45

お礼

回答ありがとうございます。
connectコールをコメントアウトすると「Illegal connection object state」の例外が発生します。
どうやらconnectコールで接続確立のようです。

投稿日時 - 2008-06-09 19:20:45

あなたにオススメの質問