重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

こんばんわ。大変困っています。
現在、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;
}

A 回答 (3件)

では、PCの環境周りでは大丈夫でしょうか?


ブラウザから対象のURLにはアクセスできますか?
HTTPプロキシを使っている場合は、エミュレータにその設定がされていますか?
    • good
    • 0
この回答へのお礼

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

以上

お礼日時:2008/06/12 14:47

getSourceURL()の戻り値を、エミュレータと実機で確認してみてください。


エミュレータの[設定]->[アプリケーション動作環境設定]->[ネットワーク設定]->ADFのURL
の設定は正しいですか?

この回答への補足

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

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
    • good
    • 0

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

この回答への補足

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

補足日時:2008/06/09 19:25
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/09 19:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!