Включить JavaScript в https или http POST ежевика - PullRequest
1 голос
/ 16 ноября 2011

Я пытаюсь установить соединение https, используя метод POST. Версия ОС 6.0, когда я позвонил по URL-адресу в broswer, получаю правильный ответ, но в моем приложении я получаю неправильный ответ. Я хочу отправить User-Agent по почте.

conn = (HttpsConnection) Connector.open(Url, Connector.READ_WRITE);
conn.setRequestMethod(HttpsConnection.POST);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("User-Agent",
    "Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-GB) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.141 Mobile Safari/534.1+");
conn.setRequestProperty("Content-length", ""+userAgent.getBytes().length);
URLEncodedPostData oPostData = new URLEncodedPostData(URLEncodedPostData.DEFAULT_CHARSET, false);

oPostData.append("User-Agent",userAgent);
OutputStream finalOut = conn.openOutputStream();   
finalOut.write(oPostData.getBytes()); 
finalOut.flush();    
finalOut.close();           
rc = conn.getResponseCode(); 

Я получаю код ответа 302, но это неверный ответ. Мой клиент говорит: «Вам нужно включить код JS в приложении, так как браузер перенаправляет правильно». Помогите пожалуйста, как включить JS в коде?

Ответы [ 2 ]

0 голосов
/ 16 ноября 2011

Я столкнулся с ситуацией в моем родном приложении BB, которое я создаю. Выясняется вопрос, частично, какой конкретный «канал связи» вы используете для подключения к сети? Как вы уже наверняка узнали, у BB есть около 6 различных каналов (не считая USB или Bluetooth), и у каждого есть свой способ настройки и установления соединения между телефоном и бэкэндом.

Посмотрите на ConnectionFactory, предпочтительные типы транспорта, ConnectionDescriptors и другие связанные классы, чтобы упростить эту задачу.

Далее, когда это станет для вас проблемой - как это случилось со мной - зависит от того, какое соединение вы в конечном итоге используете для подключения, вы можете получить ошибку 302 Redirection от Сервера. Не большая проблема, если это произойдет ... просто проверьте наличие поля заголовка «Location», которое будет добавлено, что позволит вам узнать новый URL-адрес, который вы должны использовать, чтобы добраться до нужного ресурса.

.... что-то вроде этого:

if (httpCon.getResponseCode() == 302 && httpCon.getHeaderField("Location") != null)
{
    String redirectedURL = httpCon.getHeaderField("Location");
    // use this in your communications to get your content.
}
0 голосов
/ 16 ноября 2011

Вы делаете прямое одиночное http-соединение с сервером, и вы получите один ответ (если соединение установилось успешно).Ничего общего с Javascript, так как вы не используете браузер.

302 - это ответ перенаправления;это означает, что сервер хочет, чтобы клиент соединялся где-то еще.Я не помню OTTOMH, если коннектор BB поддерживает автоматические перенаправления, но если это так, вы, вероятно, хотите включить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...