Samsung C6112 (трубка J2ME) Прервана проблема исключения - PullRequest
0 голосов
/ 18 января 2012

На телефоне Samsung C6112 у меня возникают странные проблемы.

Мое приложение мидлета пытается подключиться к URL-адресу HTTPS.(Размещается на веб-сервере IIS 6.0 с сертификатом Versign).

Я отправляю данные методом POST.После завершения записи данных я вызываю метод outputtream.flush () и outputtream.close () .Эти два метода дают « InterruptedIOException или IOException: TCP open ».

, если я комментирую оба метода, т.е. .flush () и .close (), hc.openInputStream();выдает то же исключение.

После примера кода, пожалуйста, предложите мне, если что-то не так.

    InputStream is = null;
OutputStream dos = null;
HttpConnection hc = null;
try {
        hc = (HttpConnection) Connector.open(url,Connector.READ_WRITE,true);

        byte b1[] = "Hello_World".getBytes();

        hc.setRequestMethod(HttpConnection.POST);

        dos = hc.openOutputStream();

        int i = 0;
        while (i < b1.length) {
            dos.write(b1[i]);
            i++;
        }
        dos.write("\r\n".getBytes());

        dos.flush(); // gives **InterruptedIOException** or **IOException:TCP open**
        dos.close(); // gives **InterruptedIOException** or **IOException:TCP open**

        is = hc.openInputStream();

        byte b[];
        ByteArrayOutputStream bStrm = new ByteArrayOutputStream();
        int ch, downloadedData=0;
        while ((ch = is.read()) != -1) {
            downloadedData++;
            bStrm.write(ch);
        }
        b = bStrm.toByteArray();

    } catch (javax.microedition.pki.CertificateException ce) {
      System.out.println("CertificateException in " + ce.toString());
    } catch (SecurityException se) {
      System.out.println("SecurityException: ", se.toString());
    } catch (ConnectionNotFoundException cnfe) {
      System.out.println("ConnectionNotFoundException: ", cnfe.toString());
    } catch (IOException ioe) {
      System.out.println("IOException: ", ioe.toString() + ioe.getMessage());
    } catch (Exception e) {
      System.out.println("Exception: ", e.toString());
    } finally {
        if (hc != null) {
            try {
                hc.close();
                hc = null;
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println("finally hc.close(); IOException " + e.getMessage() + "  " + e.toString());
            }
        }

        if(is !=null) {
            try {
                is.close();
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println("finally is.close(); Exception " + e.getMessage() + "  " + e.toString());
            }
        }
    }

Пожалуйста, дайте мне знать, как обращаться с телефонами Samsung j2me.

1 Ответ

0 голосов
/ 19 января 2012

попробуйте,

вместо,

dos = hc.openOutputStream();

попробуйте,

dos = (OutputStream) hc.openOutputStream();

и вместо,

is = hc.openInputStream();

попробуйтеthis,

is = (InputStream) hc.openInputStream();

Однако я хотел бы предложить вам использовать DataInputStream & DataOutputStream класс для этих операций.

...