- ベストアンサー
iアプリ パスワードプログラム
サーバーをもうけた認証(ID・パスワード)ができるプログラムの大まかな流れでいいのでソースをおしえてください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 補足を頂き、ありがとうございます。 エラーメッセージを見る限り、ZukaiGetクラスのcomponentActionから、 Connector.openメソッドを呼び出したときにセキュリティ例外が発生したようです。 > Uncaught excpetion: java/lang/SecurityException > Method............: 44f4b0 'javax/microedition/io/Connector.open (static)' > Method............: f25460 'ZukaiGet.componentAction (virtual)' > ERROR: Unrecognized JAM error [1] SecurityExceptionが発生する原因としては、 ・端末がネットワーク接続を認めない設定になっている ・ADFファイル(拡張子は.jam)の、パラメータ「UseNetwork」に「http」が設定されていない などが考えられます。 NTTドコモ公式のエミュレータを使用されている場合、 ネットワーク設定をする必要があるので、確認してみてください。 (504i用は、「その他」→「ネットワーク設定」)
その他の回答 (6)
- Request-x
- ベストアンサー率51% (47/92)
こんばんは。 > エミュレータで実行したところ、電話画面が消え、 > KToolbarのウィンドウにダラーっと何行ものメッセージみたいなものが出てきました。 > これって何ですか? 実行時なら、何らかのエラーメッセージが出たのではと思います。 (コンパイル時なら、何らかの文法エラー) こんな感じの文章では無かったですか? ------------------------------------------------------- java.lang.NullPointerException:null Test:25 . . . ------------------------------------------------------- もし現象の再現が可能なら、そのとき出力されたメッセージを教えて頂ければと思います。
補足
いつも丁寧にありがとうございます。エミュレータ上で動かしたらこのようなエラーメッセージが表示されました。長いので恐縮ですが・・・。 ビルドは完了しました Starting project "ZukaiGet" Uncaught excpetion: java/lang/SecurityException Method............: 452d44 'com/nttdocomo/io/reference/http/Protocol.checkForMatchingSourceURL (virtual)' Frame Pointer.....: f4eee8 Current IP........: 4771b2 = 477149 + offset 105 Previous Frame....: f45208 Previous IP.......: 47721e (offset 12) Exception handlers: 47fdac Frame size........: 3 (1 arguments, 2 local variables) Argument[0].......: f51558 Local[1]..........: 0 Local[2]..........: f220f0 Method............: 452d94 'com/nttdocomo/io/reference/http/Protocol.checkURLRestrictions (virtual)' Frame Pointer.....: f45208 Current IP........: 47721e = 477212 + offset 12 Previous Frame....: f451ec Previous IP.......: 477107 (offset 84) Exception handlers: 0 Frame size........: 1 (1 arguments, 0 local variables) Argument[0].......: f51558 Method............: 452cf4 'com/nttdocomo/io/reference/http/Protocol.open (virtual)' Frame Pointer.....: f451ec Current IP........: 477107 = 4770b3 + offset 84 Previous Frame....: f451c4 Previous IP.......: 47e84c (offset 7) Exception handlers: 0 Frame size........: 4 (4 arguments, 0 local variables) Argument[0].......: f51558 Argument[1].......: f50670 Argument[2].......: 1 Argument[3].......: 0 Method............: 45bc20 'com/sun/cldc/io/ConnectionBase.openPrim (virtual)' Frame Pointer.....: f451c4 Current IP........: 47e84c = 47e845 + offset 7 Previous Frame....: f4519c Previous IP.......: 474b1c (offset 135) Exception handlers: 0 Frame size........: 4 (4 arguments, 0 local variables) Argument[0].......: f51558 Argument[1].......: f50670 Argument[2].......: 1 Argument[3].......: 0 Method............: 44f500 'javax/microedition/io/Connector.openPrim (static)' Frame Pointer.....: f4519c Current IP........: 474b1c = 474a95 + offset 135 Previous Frame....: f45164 Previous IP.......: 474a63 (offset 15) Exception handlers: 47fc40 Frame size........: 8 (4 arguments, 4 local variables) Argument[0].......: f50670 Argument[1].......: 1 Argument[2].......: 0 Argument[3].......: f20894 Local[4]..........: 4 Local[5]..........: f50564 Local[6]..........: 4814e0 Local[7]..........: f51558 Method............: 44f4d8 'javax/microedition/io/Connector.open (static)' Frame Pointer.....: f45164 Current IP........: 474a63 = 474a54 + offset 15 Previous Frame....: f4513c Previous IP.......: 474a53 (offset 6) Exception handlers: 47fc2c Frame size........: 4 (3 arguments, 1 local variables) Argument[0].......: f50200 Argument[1].......: 1 Argument[2].......: 0 Local[3]..........: 0 Method............: 44f4b0 'javax/microedition/io/Connector.open (static)' Frame Pointer.....: f4513c Current IP........: 474a53 = 474a4d + offset 6 Previous Frame....: f279ec Previous IP.......: f254eb (offset 43) Exception handlers: 0 Frame size........: 2 (2 arguments, 0 local variables) Argument[0].......: f50200 Argument[1].......: 1 Method............: f25460 'ZukaiGet.componentAction (virtual)' Frame Pointer.....: f279ec Current IP........: f254eb = f254c0 + offset 43 Previous Frame....: f279b4 Previous IP.......: 472372 (offset 29) Exception handlers: f25560 Frame size........: 8 (4 arguments, 4 local variables) Argument[0].......: f25870 Argument[1].......: f32224 Argument[2].......: 1 Argument[3].......: 14 Local[4]..........: f4e2c0 Local[5]..........: 0 Local[6]..........: 0 Local[7]..........: 0 Method............: 44d464 'com/nttdocomo/ui/PanelImpl.fireComponentEvent (virtual)' Frame Pointer.....: f279b4 Current IP........: 472372 = 472355 + offset 29 Previous Frame....: f2798c Previous IP.......: 47518a (offset 82) Exception handlers: 0 Frame size........: 4 (4 arguments, 0 local variables) Argument[0].......: f284a8 Argument[1].......: f322ec Argument[2].......: 1 Argument[3].......: 14 Method............: 450554 'com/nttdocomo/ui/ButtonImpl.processEvent (virtual)' Frame Pointer.....: f2798c Current IP........: 47518a = 475138 + offset 82 Previous Frame....: f27964 Previous IP.......: 472433 (offset 39) Exception handlers: 0 Frame size........: 4 (3 arguments, 1 local variables) Argument[0].......: f322ec Argument[1].......: 1 Argument[2].......: 14 Local[3]..........: f283fc Method............: 44d5f4 'com/nttdocomo/ui/PanelImpl.processKey (virtual)' Frame Pointer.....: f27964 Current IP........: 472433 = 47240c + offset 39 Previous Frame....: f2793c Previous IP.......: 47f8a0 (offset 120) Exception handlers: 0 Frame size........: 4 (3 arguments, 1 local variables) Argument[0].......: f284a8 Argument[1].......: 1 Argument[2].......: 14 Local[3]..........: 0 Method............: 45c5bc 'com/nttdocomo/ui/EventDispatcher.run (virtual)' Frame Pointer.....: f2793c Current IP........: 47f8a0 = 47f828 + offset 120 Previous Frame....: 0 Previous IP.......: 1 Exception handlers: 0 Frame size........: 4 (1 arguments, 3 local variables) Argument[0].......: f2770c Local[1]..........: f4c600 Local[2]..........: f283fc Local[3]..........: f284a8 ERROR: event dispatcher thread has terminated unexpectedly Execution completed successfully 37239 bytecodes executed 148 thread switches 216 classes loaded (245 bytes) 10639 objects allocated (290996 bytes) 1 garbage collections 253264 bytes collected 0 objects deferred in GC 0 (maximum) objects deferred at any one time 0 rescans of heap because of deferral overflow 7 pointer validations requiring heap scans Current memory usage 37788 bytes Heap size 262144 bytes ERROR: Unrecognized JAM error [1]
- Request-x
- ベストアンサー率51% (47/92)
こんにちは。 > iアプリはエミュレーター上でビルドできダウンロード出来ました。 > おそらくURLの呼び出す時の命令がおかしいと思うのですが・・。 サーバとの接続処理中にExceptionが発生したのではと思いますが、 サーバ側がおかしいのか、それともiアプリ側がおかしいのか確認してみてください。 ・サーバ側プログラムはブラウザ(IE、ネスケ)で正しく呼び出す(処理する)ことができるか? →期待した動作と異なる、または例外がでる場合はサーバ側がおかしい。 ・iアプリ側でサーバと通信を行う処理で例外(ConnectionException)が出るときは、 HttpConnection.getResponseCode() またはConnectionException.getStatus() で どんな例外内容かおおまかな判断ができます。 --------------------------------------------------------------------- try { HttpConnection hc = ... ; //ここからデバッグ用 int code = hc.getResponseCode() ; //サーバからのレスポンスコードを取得 switch(code) { case HttpConnection.HTTP_NOT_FOUND : System.out.println("HTTP_NOT_FOUND") ; break ; //HttpConnectionクラスのレスポンスコードを表す定数分 //処理を行う } //ここまで hc.connect() ; } catch(ConnectionException ce) { int status = ce.getStatus() ; //例外ステータスを取得 //HTTPステータスが正常終了系以外 if (status == ConnectionException.HTTP_ERROR) { int code = hc.getResponseCode() ; } else { switch(status) { //ConnectionExceptionクラスのレスポンスコードを表す定数分 //処理を行う } } } catch(Exception e) { } --------------------------------------------------------------------- 通信処理は、デバッグが難しいし、バイト数は食うしと面倒だらけですが 実機でテストするときの負担(実機だとお金が掛ります)を考えると、 エミュレータできっちりデバッグした方が安全です。 差し支えなければ、どんな内容の例外が発生したのか教えて頂けないでしょうか? 以上、宜しくお願い致します。
補足
switch(code) { case HttpConnection.HTTP_NOT_FOUND : System.out.println("HTTP_NOT_FOUND") ; break ; を組み込みました。 エミュレータで実行したところ、電話画面が消え、KToolbarのウィンドウにダラーっと何行ものメッセージみたいなものが出てきました。これって何ですか?
- Request-x
- ベストアンサー率51% (47/92)
こんばんは。 iアプリ側で hc.setRequestMethod(HttpConnection.POST) と設定している場合はdoPost メソッドが呼び出されます。 (hc.setRequestMethod(HttpConnection.GET)を設定するとdoGet) 細かい事ですが、気が付かずにパニックになることがたまに(自分が)あるので(恥) 後、request.getProperty() でIDとパスワードを取得することも忘れずに行ってください。 内部の処理ですが、出力するときにHTMLタグをつけていますが、iアプリ側では「文字列として」受け取ります。 (タグも「ただの文字列として」受け取ります) よって、結果を画面に出力させたい場合、 1.サーバ側で出力 --------------------------------------------------------------------- out.println("number=" + stRecord[nCol]) ; //学籍番号 out.println("name=" + stRecord[nCol]) ; //名前 out.println("from_pref=" + stRecord[nCol]) ; //出身地 --------------------------------------------------------------------- 2.iアプリ側で結果を読み込む --------------------------------------------------------------------- byte[] result = new byte[(int)hc.getLength()]; is =hc.openInputStream(); is.read(result); --------------------------------------------------------------------- 3.各パラメータを元に、iアプリ側で結果画面をあらかじめ用意し、値をセットして表示する ※入力が必要なければ Canvasクラスで描画してもよいです。 以上の順序で処理する事になると思います。 以上、ご参考まで。
補足
いつもありがとうございます。 iアプリからアクセスされるサーバー(サーブレット)のプログラムファイルAをtom_cat\webapps/netjv/web_inf\classes\の中に置き iアプリ側でサーバー(サーブレット)にアクセスする時のプログラムファイルBを、 tom_cat\webapps\lootの中に置きました。 iアプリ側の命令として、サーブレットとの接続を指定するのに HttpConnection con =(HttpConnection)Connector.open("http://www.**.ne.jp:8080/netjv/servlet/A.ImodeTextServlet?imode=" + URLEncoder.encode(inBox.getText()), Connector.READ); としました。iアプリはエミュレーター上でビルドできダウンロード出来ました。 おそらくURLの呼び出す時の命令がおかしいと思うのですが・・。アドバイスお願いします。
- Request-x
- ベストアンサー率51% (47/92)
こんばんは。 > 最後にこのURLにあるサイトには、iアプリ用サーバーとして > これと同じフォームのホームページを作ればいいのですよね? 「このURL」は hc=(HttpConnection)Connector.open("http://hoehoe",Connector.READ_WRITE); ^^^^^^^^^^^^^ ↑これですよね? iアプリの接続先のURLと同じサイトに、iアプリダウンロード用のHPを作成すればよいのか、 ということだと思いますが(間違っていたら御免なさい)、 iアプリの環境に関して注意点をいくつか。 iアプリの通信処理の制限事項として、 ※iアプリ内で接続するURLはiアプリ本体のダウンロード元と以下の点が一致しなければならない ・プロトコル ・ホスト名(数値IPアドレスはNG) ・ポート番号 例)「http://www.hoehoe.com/i/download.html」からダウンロード →「http://www.hoehoe.com/」以下のURLとしか通信できない 例えば「http://www.hoehoe.com/i/download.html」という、 iアプリダウンロード用のHTMLを作成したならば、 「http://www.hoehoe.com/」以下のどこかに、iアプリと通信処理を行うサーバ側プログラム (CGIでもサーブレットでもなんでも良いです)を作成すればよいです。 ダウンロード用HTMLには、iアプリ用の記述を追加してください。 --------------------------------------------------------------------- <OBJECT declare id="sample" data="xxx.jam" type="application/x-jam"> </OBJECT> iアプリ<A ijam="#sample" href="error.html">ダウンロード</A> ※OBJECTタグのidと、Aタグのijamは一致すること ※OBJECTタグのdataは、作成したiアプリのJAMファイルのURLを記述してください ※Aタグのhrefは、iアプリ対応機種以外の機種がアクセスしたときに表示させるHTMLです。 --------------------------------------------------------------------- 以上、外していたら御免なさい。
補足
ありがとうございます。iアプリダウンロード用URLと教えていただいた3点を一致させたURLにおくサーバー側プログラムは以下の通りでいいですか? (最終的にiアプリからID・passwordを入力したらサーバー側が反応して本画面を表出させてくれるプログラムを組みたいです。) // ps/ext_db2.java // データベースのテーブル中への表示 import javax.servlet.* ; import javax.servlet.http.* ; import java.io.* ; import java.util.ArrayList ; import jdbclib.WebJdbcApi ; import jdbclib.HtmlTemplate ; import java.sql.* ; public class ext_db2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { final String CHAR_SET = "Shift_JIS" ; final String LINE = "-----------------------------------------" ; HtmlTemplate htmlTemplate = new HtmlTemplate() ; PrintWriter out = htmlTemplate.headerTopOut(response, "A", CHAR_SET) ; htmlTemplate.headerBodyAttr(out, "text='Blue' bgcolor='CornSilk'") ; htmlTemplate.captionOut(out, "B", "2") ; out.println("<hr><center>") ; sqlWork("zyou_kyou", out) ; out.println("</center>") ; htmlTemplate.bottomOut(out) ; } final String[] stFields = { "number", "name", "from_pref" } ; void sqlWork(String stDtBs, PrintWriter out) { WebJdbcApi webJdbcApi = new WebJdbcApi() ; if(!webJdbcApi.openDatabase("", stDtBs, "root", "pen3")) { out.println("\nエラーが発生しました。\n\n" + webJdbcApi.getMessage()) ; return ; } String stQUERY = "SELECT * FROM ooiwa_sem" ; queryShow(stQUERY, webJdbcApi, out) ; webJdbcApi.closeDatabase() ; } // ArrayListを使ったSELECT文のフィールド値収集メソッド ArrayList getFields(String[] stFields, ResultSet result) { final int nFieldQt = stFields.length ; ArrayList arrayList = new ArrayList() ; int nIx = 0 ; try { while(result.next()) { String[] stBuffer = new String[stFields.length] ; for(nIx = 0 ; nIx < nFieldQt ; nIx++) { stBuffer[nIx] = result.getString(stFields[nIx]) ; } arrayList.add(stBuffer) ; } } catch(Exception exp) { } return arrayList ; } void queryShow(String agstQuery, WebJdbcApi webJdbcApi, PrintWriter out) { if(!webJdbcApi.executeSql(agstQuery)) { out.println("\nエラーが発生しました。\n\n" + webJdbcApi.getMessage()) ; return ; } String[] stRecord ; ArrayList arrayList = getFields(stFields, webJdbcApi.getResult()) ; Object[] object = arrayList.toArray() ; out.println("<b>" + agstQuery + "</b>") ; out.println("<table border='1'>") ; out.println("<tr><th>number</th><th>name</th><th>from_pref</th>" ) ; out.println("<tr><th>学籍番号</th><th>氏名</th>" + "<th>出身地</th>") ; for(int nRow = 0 ; nRow < object.length ; nRow++) { stRecord = (String[])object[nRow] ; out.print("<tr align='right'>") ; for(int nCol = 0 ; nCol < stRecord.length ; nCol++) { out.print("<td>" + stRecord[nCol] + "</td>") ; } out.println("</tr>") ; } out.println("</table><p>") ; } }
- Request-x
- ベストアンサー率51% (47/92)
こんにちは。 私も人にお教えできるほど詳しくは無いのですが、出来る範囲でお答え致します。 まず、iアプリ用の開発ツールでコンパイルはされましたか? (開発ツールは「http://www.nttdocomo.co.jp/p_s/imode/java/」からダウンロード) ビルドしてみると文法エラーが出ると思います。 ※サンプルで書いたものに誤りがありました。申し訳ありません。 TextBox id = new TextBox("", 20, 1, TextBox.DISPLAY_ANY) ^^^^^^^ データの読み書きをwriteData、readDataに分けていますが、 InputStreamとOutputStreamを取得するHttpConnectionは同一のものなので、 一つのメソッドで読み書きを行って良いです。 文法エラー以外に注意点としては、 ・catch節で取得したExceptionはデバッグ用に出力するようにする。 ・InputStream、OutputStreamなどのcloseは finally節で行うようにする。 (エラーが出る出ないに関わらず、必ずcloseさせる ---------------------------------------------------------------- InputStream is = null ; try { is = new InputStream() } catch (Exception e) { //デバッグ用 //実機で動作させるときは、Dialogで表示させるなどしてください。 e.printStackTrace() ; } finally { //ここでクローズ! if (is != null) { is.close() ; } } ---------------------------------------------------------------- huji3さんのプログラムを修正、ソフトキーイベントを追加した結果が下のプログラムです。 (コンパイル、デバッグは504i用ツールで行いました。) -------------------------------------------------------------------- import com.nttdocomo.ui.*; import com.nttdocomo.io.*; import javax.microedition.io.*; import java.io.*; //IApplicationクラス public class IdPassIApp extends IApplication{ public void start(){ IdPassPanel ap = new IdPassPanel(this); Display.setCurrent(ap); } } //Panelを継承した画面表示用クラス class IdPassPanel extends Panel implements SoftKeyListener { private IApplication iApp; private TextBox t1,t2; //コンストラクタメソッド IdPassPanel(IApplication app) { iApp=app; t1=new TextBox("",20,1, TextBox.DISPLAY_ANY); add(t1); t2=new TextBox("",20,1, TextBox.DISPLAY_PASSWORD); add(t2); setSoftLabel(Frame.SOFT_KEY_1, "接続") ; //ソフトキー1 setSoftLabel(Frame.SOFT_KEY_2, "終了") ; //ソフトキー2 setSoftKeyListener(this) ; //ソフトキーイベントを受け取る } /** * サーバとの通信を行うメソッド(writeDataメソッド と readDataメソッドをあわせた) */ public void connect() { HttpConnection hc = null; OutputStream os = null; InputStream is = null; try{ hc=(HttpConnection)Connector.open("http://hoehoe",Connector.READ_WRITE); hc.setRequestMethod(HttpConnection.POST); hc.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); String id = "ID=" + t1.getText() ; String pass = "&PASSWORD=" + t2.getText() ; //サーバに渡すパラメータ(ID、パスワード)の書き込み os = hc.openOutputStream(); os.write(id.getBytes()); os.write(pass.getBytes()); os.close(); //サーバと接続 hc.connect(); //サーバからの出力結果を受け取るバイト配列 byte[] result = new byte[(int)hc.getLength()]; is =hc.openInputStream(); is.read(result); //サーバからの結果を読み込む } catch (Exception e){ //エラー内容をダイアログで表示 Dialog d = new Dialog(Dialog.DIALOG_ERROR, "ERROR!!") ; d.setText(e.getMessage()) ; d.show() ; } finally { try{ if(is!=null)is.close(); } catch (Exception e) { } try{ if(os!=null)os.close(); } catch (Exception e) { } try{ if(hc!=null)hc.close(); } catch (Exception e) { } } } /** * ソフトキーを押下したときのイベント */ public void softKeyPressed(int softKey) { if (softKey == Frame.SOFT_KEY_1) { connect() ; } else if (softKey == Frame.SOFT_KEY_2) { iApp.terminate() ; //iアプリ終了 } } /** * ソフトキーを離したときのイベント */ public void softKeyReleased(int softKey) {} } -------------------------------------------------------------------- iアプリプログラミングに関しては、 @IT 「http://www.atmarkit.co.jp/fmobile/」のDoJaによるiアプリの開発入門、 ZDNet「http://www.zdnet.co.jp/mobile/rensai/」のイチから始めるiモードJavaプログラミング iアプリML「http://gigahz.net/ml/java/archive/」 JavaDoc、機種依存などなど「http://godwood.allnet.ne.jp/vioret/」 などが参考になると思います。 また、503i用開発ツールをインストールをされたならば、 サーバと通信を行うサンプルプログラムがあると思うので、そちらも参考にしてみてください。 以上、ご参考まで。
補足
本当に本当に本当にありがとうございます。最後にこのURLにあるサイトには、iアプリ用サーバーとしてこれと同じフォームのホームページを作ればいいのですよね?
- Request-x
- ベストアンサー率51% (47/92)
こんにちは。 huji3さんが仰る処理の大まかな流れとしては、 画面でID、パスワードを入力(TextBox) TextBox id = new TextBox("", 20, 1, Display.DISPLAY_ANY) TextBox pass = new TextBox("", 20, 1, Display.DISPLAY_PASSWORD) ↓ ID、パスワードをサーバに送信 HttpConnectiion conn = (HttpConnection)Connector.open("URL", Connector.READ_WRITE) conn.setRequestMethod(HttpConnection.POST) conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded") OutputStream os = conn.openOutputStream() os.write("ID=" + id.getText()) os.write("&PASSWORD=" + id.getText()) os.close() conn.connect() ↓ 結果をサーバから取得 byte[] result = new byte[(int)conn.getLength()] InputStream is = conn.openInputStream() is.read(result) ・・・となると思います(日本語処理含まず)。 以上、ご参考まで。
補足
丁寧に誘導していただきありがとうございます。私のまわりでjavaをしたことがある人がいない上、私自身も今回の卒業研究で初めてプログラムというものに触れプログラム構成がなっていないと思いますが、見よう見まねで構成してみました。見ていただけますか?訂正すべきところを指摘して下さい。 import com.nttdocomo.ui.*; import com.nttdocomo.io.*; import javax.microedition.io.*; import java.io.*; //IApplicationクラス public class IdPassIApp extends IApplication{ public void start(){ IdPasswordPanel ap=new IdPasswordPanel(this); Display.setCurrent(ap); } } //Panelを継承した画面表示用クラス class IdPassPanel extends Panel{ private IApplication iApp; private TextBox t1,t2; //コンストラクタメソッド IdPassPanel(IApplication app) iApp=app; t1=new TextBox("",20,1.Display.DISPLAY_ANY); add(t1); t2=new TextBox("",20,1.Dispaly.DISPLAY_PASSWORD); add(t2); } //データー書き込みメソッド public void writeData(int n){ HttpConnection hc=null; OutputStream os=null; try{ hc=(HttpConnection)Connector.open("URL",Connector.READ_WRITE); hc.setRequestMethod(HttpConnection.POST); hc.setRequsetProperty("Content-Type","application/x-www-form-urlencoded"); os = conn.openOutputStream(); os.write("ID="+id.getText()); os.write("&PASSWORD="+id.getText()); os.close(); hc.connect(); }catch(Exception e){ try{ if(hc !=null)hc.close(); if(os!=null)os.close(); } } //データー読み込みメソッド public void readData(){ InputStream is=null; try{ byte[]result=new byte[(int)conn.getLength()]; is =connector.openInputStream(); is.read(result); }catch(Exception e){ try{ if(is!=null)is.close(); } }
お礼
大変ありがとうございました。接続できました。少しずつたのしくなってきました。本当に本当にありがとうございました。