2012-02-23 12 views
0

私のlwuitアプリケーションは、Blackberry Simulatorでうまくいきます。アプリケーションが正常にインストールされ、正常に起動しますが、ネットワーク接続で問題が発生しています。ネットワークにアクセスしようとすると400 Bad Requestメッセージが表示されます。私はあなたたちは私を助けたい下さいLWUIT ConnectionRequest:ブラックベリーでのリクエストが正しくありません。

public ConnectionRequest prepareConnection(String page, String progressMsg, final int request) 
{ 
    final ConnectionRequest conR = new ConnectionRequest() 
    { 
     public void readResponse(InputStream input) throws IOException { 
      StringBuffer sb = new StringBuffer(); 
      int ch; 
      while((ch=input.read()) != -1) 
       sb.append((char)ch); 

      httpResponse(sb.toString().trim(), request); 
     } 
    }; 

    conR.setUrl(NetworkHandler.getURL()+page); 
    conR.setDuplicateSupported(true); 
    Progress progress = new Progress(progressMsg, conR) 
    { 
     public void actionCommand(Command command) 
     { 
      if(command.getCommandName().equals("Cancel")) 
       conR.kill(); 
     } 
    }; 
    conR.setDisposeOnCompletion(progress); 

    return conR; 
} 

private void login(String code) 
{ 
    Container container = Display.getInstance().getCurrent(); 

    if(!validateLogin(container)) 
    { 
     showDialogMessage("Alert", "Please enter your user name and password!"); 
     return; 
    } 
    NetworkManager.getInstance().start(); 

    ConnectionRequest conR = prepareConnection(NetworkHandler.LOGIN_PAGE, "Authenticating...", RequestType.LOGIN); 
    Dialog dialog = conR.getDisposeOnCompletion(); 

    conR.setPost(true); 
    conR.addArgument("u", getFieldValue(findTxtUserName(container))); 
    conR.addArgument("p", getFieldValue(findTxtPassword(container))); 
    conR.addArgument("c", code); 

    NetworkManager.getInstance().addToQueue(conR); 
    dialog.show(); 
} 

public void onLoginForm_BtnLoginAction(Component c, ActionEvent event) { 
     login(""); 
} 

:私は、間違ってやっているものを何もしていない私のネットワーク接続コードは以下の通りです。 ありがとうございました。

ログインme

答えて

1

これは、通常、デバイスのAPN構成に問題があることを示しています。通常、ブラックベリーアプリの回避策は、APN設定が自動的に正しくありません。これはかなり難しいことです。 CodenameOneはこれをシームレスに行いますが、LWUITはそうしません。

+0

@shaialmong、あなたのお返事ありがとうございます。他のアプリが正常に動作しているため、APNが問題であるとは思わない。私がテストしたデバイスのネットワークに接続する。私の国では、ネットワーク事業者がそれを自動的に設定します。 CodenameOneについて、私は彼らのウェブサイトで見たものから、プロジェクトはまだ出ていないようです。 –

+0

CodenameOneは3月初めにパブリックベータ版になります。ブラウザにはAPNの別の定義があるため、アプリケーションが失敗しても機能する可能性があります。 –

+0

は他のデバイスタイプでテストしていませんが、他のJava対応モバイルデバイス用のMIDletバージョンがあります。私たちはlwuitバージョンがブラックベリーのためだけであることを望んでいました。プロジェクトをCodenameOneプロジェクトに変換できますか?私はあなたが示唆したようにデバイス上でそれをテストします。 –

関連する問題