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


Автор: ynblpb 26.4.2012, 13:42
Добрый день!

На сервере используется Spring Security. Пытаюсь сделать авторизацию из мидлета.
Код

HttpConnection hpc = null;
                    DataInputStream dis = null;
                    DataOutputStream dos = null;

                    boolean newline = false;
                    String content = "";
                    try {
                        hpc = (HttpConnection) Connector.open(url);
                        hpc.setRequestMethod(HttpConnection.POST);
                        hpc.setRequestProperty("Content-Length", String.valueOf("j_username=имя&j_password=пароль&submit=Login".getBytes().length));
                        hpc.setRequestProperty("User-Agent", "Profile/MIDP-1.0 Configuration/CLDC-1.0");
                        hpc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

                        dos = new DataOutputStream(hpc.openOutputStream());
                        dos.write("j_username=имя&j_password=пароль&submit=Login".getBytes());
                        //dos.flush();

                        InputStreamReader xdis = new InputStreamReader(hpc.openInputStream());

                        int character;
                        while ((character = xdis.read()) != -1) {
                            if ((char) character == '\\') {
                                newline = true;
                                continue;
                            } else {
                                if ((char) character == 'n' && newline) {
                                    content += "\n";
                                    newline = false;
                                } else if (newline) {
                                    content += "\\" + (char) character;
                                    newline = false;
                                } else {
                                    content += (char) character;
                                    newline = false;
                                }
                            }

                        }
                        if (hpc != null) {
                            hpc.close();
                        }
                        if (dis != null) {
                            dis.close();
                        }
                    } catch (IOException e2) {
                    }
                    System.out.println(content);


В ответе от сервера приходит снова форма авторизации.

Автор: oxigen 26.4.2012, 14:01
Может я что-то не понимаю, но где Ваш запрос на сервер отправляется?

Автор: ynblpb 27.4.2012, 07:00
oxigen,  я сам еще плохо в этом разбираюсь, код взял http://www.java2s.com/Tutorial/Java/0430__J2ME/Httppost.htm

Почитал http://java.sun.com/javame/reference/apis/jsr118/javax/microedition/io/HttpConnection.html и добавил 
Код

                        int rc = hpc.getResponseCode();
                        if (rc != HttpConnection.HTTP_OK) {
                            throw new IOException("HTTP response code: " + rc);
                        }


но ничего не изменилось...

Автор: oxigen 27.4.2012, 10:47
Возможно, проблема в кирилице? "j_username=имя&j_password=пароль&submit=Login"

Но вообще, если запрос уходит на сервер и с сервера приходит какой-то ответ, то есть смысл смотреть на стороне сервера, что там происходит .
Тут то все хорошо. Отправили запрос - получили ответ.

Автор: ynblpb 27.4.2012, 12:46
oxigen, на сервер идет латиница, это я сюда чтобы понятно было написал.


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