Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > s60 HttpConnection Post


Автор: GeniusUz 27.2.2009, 17:26
Здравствуйте,
в телефонах с Symbian s60 не могу отправить данные с методом Post, т.е мидп не отправляет, а на s40 телефонах все работает нормально.
вот код:

Код

try {
            connect = (HttpConnection) Connector.open(server, Connector.READ_WRITE, true);
            connect.setRequestMethod(HttpConnection.POST);
            connect.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
            connect.setRequestProperty("User-Agent", "Profile/MIDP-2.0 Configuration/CLDC-1.1");
            connect.setRequestProperty("Content-Length",String.valueOf(data.length()));
            doStr = connect.openDataOutputStream();
            doStr.flush();
            doStr.write(data.getBytes());
            if (connect.getResponseCode() == HttpConnection.HTTP_OK) {
                String str;
                diStr = connect.openDataInputStream();
                int length = (int) connect.getLength();
                if (length != -1) {
                    byte incomingData[] = new byte[length];
                    diStr.read(incomingData);
                    str = new String(incomingData);
                }
                else  {
                    ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
                    int ch;
                    while ((ch = diStr.read()) != -1) {
                        bytestream.write(ch);
                    }
                    str = new String(bytestream.toByteArray());
                    bytestream.close();
                }
                doStr.close();
                diStr.close();
                connect.close();
                return str;
            }
        } catch (IOException ex) {
            try {
                doStr.close();
                diStr.close();
                connect.close();
            } catch (IOException ex1) {
                ex1.printStackTrace();
            }
            ex.printStackTrace();
        }


заранее спасибо

Автор: GeniusUz 27.2.2009, 17:54
проблема в том, что doStr.write(data.getBytes()); не работает, т.е не отправляет данные, просто пост делает но данные не отправляется... как сделать правильно.
помогите пожалуйста...

Автор: GeniusUz 27.2.2009, 18:29
я решил проблему, проблема в том что doStr.flush(); не перед doStr.write(data.getBytes());, а надо написать после doStr.write(data.getBytes());, вот потом все работает в смартфонах, а на обычных телефонах не РАБОТАЕТ, отдельно надо компилировать и все.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)