Http POST в BlackBerry - PullRequest
       53

Http POST в BlackBerry

4 голосов
/ 31 мая 2011

Привет,

Я пытаюсь установить соединение с сервером из моего приложения BlackBerry.Мне удалось получить код ответа на статус сервера.Теперь у меня есть несколько значений, которые я должен отправить на сервер

Это как значения страницы регистрации (имя пользователя, пароль, возраст) должны быть отправлены на сервер.

        ConnectionFactory connFact = new ConnectionFactory();
        ConnectionDescriptor connDesc;
        connDesc = connFact.getConnection(url);
        if (connDesc != null)
        {
            HttpConnection httpConn;
            httpConn = (HttpConnection)connDesc.getConnection();
            try
            {
                final int iResponseCode = httpConn.getResponseCode();
                UiApplication.getUiApplication().invokeLater(new Runnable()
                {
                    public void run()
                    {
                        Dialog.alert("Response code: " + Integer.toString(iResponseCode));
                    }
                });
            }
            catch (IOException e)
            {
                System.err.println("Caught IOException: " + e.getMessage());
            }
        }

Вот код, который я использовал, чтобы получить код ответа.Я был бы признателен, если бы кто-нибудь мог помочь мне, как я могу сделать POST-запрос к серверу. URL-адрес сервера для статуса был company.com/app/version/stats

, когда он для регистрации это будет компания.com / app / register

Спасибо

Ответы [ 2 ]

6 голосов
/ 31 мая 2011

Какой тип POST вы используете? Если вы просто передаете пары ключ-значение, то это должен быть POST типа содержимого application / x-www-form-urlencoded.

Итак, вам не хватает кода:

1). Установите правильный тип контента для вашего соединения:

httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

2). Подготовьте контент для отправки на сервер через POST:

URLEncodedPostData encPostData = new URLEncodedPostData("UTF-8", false);
encPostData.append("username", username);
encPostData.append("password", password);
encPostData.append("age", age);
byte[] postData = encPostData.toString().getBytes("UTF-8");

3). Установите длину содержимого для соединения (этот шаг может быть необязательным - попробуйте без этого сначала, возможно, BB OS достаточно умна, чтобы установить это автоматически):

httpConn.setRequestProperty("Content-Length", String.valueOf(postData.length));

4). Откройте OutputStream и запишите в него содержимое (код упрощен):

OutputStream os = httpConn.openOutputStream();
os.write(postData);
os.flush();
1 голос
/ 31 мая 2011
 ...
httpConn = (HttpConnection)connDesc.getConnection();    
httpConn.setRequestMethod(HttpConnection.POST);
httpConn.setRequestProperty("username",name);
httpConn.setRequestProperty("password",pass);
....
...