Blackberry User-Agent и URL-адрес перенаправления https - PullRequest
0 голосов
/ 11 ноября 2011

Я попытался получить доступ к HTTPS-соединению, введя значение в браузере, оно работает нормально и перенаправляет меня на ожидаемую страницу / вывод. Но когда я попробовал то же самое, используя код, я не смог получить результат. Я попытался установить UserAgent как (Mozilla / 5.0 (BlackBerry; U; BlackBerry 9800; en-GB) AppleWebKit / 534.1 + (KHTML, как Gecko) Версия / 6.0.0.141 Mobile Safari / 534.1 +). Но не повезло. Я получаю оповещение о доверенном соединении, когда я нажимаю «Продолжить», я получаю код ответа 302. Как я могу внедрить сертификат защищенного соединения, чтобы отключить оповещение о доверенном соединении.

Я привык к httpsconnection, чтобы открыть URL-адрес, он возвращает код ответа 302. Снова я проверил с помощью

if (rc == HttpConnection.HTTP_TEMP_REDIRECT
            || rc == HttpConnection.HTTP_MOVED_TEMP
            || rc == HttpConnection.HTTP_MOVED_PERM) {
    String location = conn.getHeaderField("location").trim();
    System.out.println("location========"+location);
    try {
        Url = location;
        newhttpConn = (HttpConnection) Connector.open(Url, Connector.READ_WRITE);
        newhttpConn.setRequestMethod(HttpConnection.POST);
        newhttpConn.setRequestProperty("User-Agent", 
                System.getProperty("browser.useragent"));
    } catch (Exception e) {                               
        System.out.println( e.toString());            
    }

Но бесполезно, я получаю те же 302 от URL перенаправления.

РЕДАКТИРОВАНИЕ:

Также, пожалуйста, дайте несколько идей, чтобы функции, эквивалентные HTTPClient, работали в HTTPSConnection. Как я могу получить эти функции. Если в Blackberry нет возможности использовать Httpclient, то как я могу использовать https-соединение Blackberry, эквивалентное Httpcleint (или), для автоматического перенаправления с использованием HTTPS-соединения?

Когда из-за connector.open (url), я получаю вот так

SSL:->CH
SSL:<-SH
SSL:<-SC
SSL:<-SHD
TLS:->CKE
SSL:->CCS
TLS:->F
TLS:<-F

в консоли вывода отображается неправильный ответ.

1 Ответ

1 голос
/ 11 ноября 2011

Я получаю предупреждение о доверенном соединении, когда я нажимаю продолжить, я получаю код ответа 302.

Это вполне ожидаемое поведение.

302 означает запрошенный ресурс находится на каком-то другом URI. Другими словами, сервер инструктирует вас выполнить перенаправление. Вы должны исследовать заголовки соединения, и в том, что называется "Location", вы найдете новый URI для продолжения. Закройте / завершите текущее соединение и запустите новое для только что полученного URI перенаправления.

UPDATE

Обычно хорошие серверы отправляют HTTP 302 после успешного завершения POST. Это известный шаблон Post / Redirect / Get , который запрещает пользователям публиковать одинаковые данные при обновлении страницы браузера (пользователь может нажать F5 в браузере на рабочем столе). Поэтому, если страница, к которой вы обращаетесь через POST, предназначена для обычных браузеров, это может означать, что ваш POST прошел успешно, и вам не нужно выполнять запрос на перенаправление. По крайней мере, если вам нужен ответ для некоторой оценки результата, не перенаправляйте с помощью POST, на этот раз используйте GET.

...