0

String[]を使用してj2meで配列を送信しようとしていますObjectOUputStreamが、このエラーが発生し続けます。

java.lang.IllegalArgumentException: HTTP URL ではありません

これが私のコードです:

    OutputStream os=null;
    HttpConnection hc= null;
    ObjectOutputStream oj=null;

    //get the URL
    String serverURL=entry.getUrl();

    hc=(HttpConnection)Connector.open(serverURL, Connector.READ_WRITE, true);
    hc=(HttpConnection)Connector.open(serverURL);


    hc.setRequestMethod (HttpConnection.POST);
    hc.setRequestProperty ("Content-Type", "application/x-www-form-urlencoded");
    hc.setRequestProperty ("User-Agent", "Profile/MIDP-2.0 Configuration/CLDC-1.0");
    hc.setRequestProperty ("Content-Language", "en-US");

    System.out.println ("Posting to the URL: " + entry.getVectorParams());

    //open the output stream to send the post parameters
    //os=hc.openOutputStream();

    oj=(ObjectOutputStream)hc.openOutputStream();
    //writing post parameters
    String[] bg=entry.getVectorParams();

    oj.writeObject(bg);

提案してください。

URL を確認しましたが、正しく、Connector.open() に関しては、実際のコードではなく、ここに 2 回貼り付けました。私が間違っていることは他にありますか?

System.out.println("Posting to the URL: " + entry.getVectorParams())これは投稿パラメーターのみを出力します。ここにサーバー URL を渡します。

String serverURL=entry.getUrl();
hc=(HttpConnection)Connector.open(serverURL, Connector.READ_WRITE, true);

私のサーバーの URL は次のとおりです。http://localhost:8080/Web/gServer.jsp

4

1 に答える 1

1

変数の値はserverURL、有効な URL であってはなりません。印刷して確認してみてください。

次のデバッグ ステートメントがあります。

System.out.println ("Posting to the URL: " + entry.getVectorParams());

しかし、それはURLではなくパラメータを出力しています。serverURL変数を出力する必要があります。

また、あなたはConnector.open()2回続けて電話をかけています。その必要はありません。

更新: POST パラメーターを接続の に書き込む方法にも問題がある可能性があると思いますOutputStream。を使用しませんObjectOutputStream。J2ME POST 呼び出しを行う例については、このようなものを参照してください。基本的にString、POST パラメータの を で区切って作成し&、 を使用String.getBytes()して に変換してbyte[]に書き込みOutputStreamます。

于 2012-12-30T22:48:25.953 に答える