2012-07-04 3 views
1

У меня есть программа ежевики, которая отправляет данные с помощью HTTP-запросов на сервер. Теперь код отлично работает на моих симуляторах (OS 5/6/7) и даже на реальных устройствах, но на некоторых других устройствах в некоторых странах соединение терпит неудачу при использовании 3g с кодом ошибки HTTP 400 (Bad Request), но через Wi-Fi это ОК .. После расследования я понял, что те бис-б прокси операторов операторов связи «блокировали»/«отклоняли» почтовый запрос из-за размера (> 7kb). Проблема в том, что я не могу сократить размер запроса, поэтому любые идеи о том, как это сделать? Любой был бы высоко оценен. СпасибоBlackberry http post request length problem

EDIT Это строка соединения, используемая при подключении через BIS.

deviceside=false;connectionUID=GPMDSXXXX;ConnectionType=mds-public (XXXX varies from network to network) 

При дальнейшем рассмотрении, я понял, что «рабочие» соединения используют тип BIS_B TransportDescriptor (5) для подключения в то время как «неудачу» соединения используют TCP_CELLULAR (1) для подключения. т. Е. При вызове connectionDescriptor.getTransportDescriptor().getTransportType() для рабочих подключений дает 5, а для отказов дает 1. Любые идеи, почему это может происходить?

+1

Тогда не используйте BIS и используйте прямой TCP. –

ответ

1

Попробуйте использовать HTTPS. В этом случае перевозчик не может понюхать, что именно происходит внутри.

+0

Интересно, поэтому, используя https, оператор не будет даже «читать» размер данных? –

+0

Исправить. Они могут измерять количество трафика, идущего на конкретное соединение. Но это не дает им ясного представления о том, что происходит. –

+0

Отмечено с благодарностью. Я думал о том, что такое многостраничный HTTP-пост, будет ли это работать? –