Пользователь-агент и Blackberry 6.0? - PullRequest
0 голосов
/ 30 марта 2011

В моем приложении для Blackberry OS 6.0 я публикую несколько файлов изображений с помощью HttpConnection, вот что я пытаюсь,

        byte[] _dataToBePost = strPostData.getBytes();
        String lineEnd = "\r\n";
        String boundary = "----------------------------";   

        String boundaryStartBytes = "------------------------------\r\n";
        byte[] startBytes = boundaryStartBytes.getBytes();

        String boundaryEndBytes = "\r\n------------------------------\r\n";
        byte[] endBytes = boundaryEndBytes.getBytes();  
        _httpConnection = (HttpConnection)Connector.open(url,Connector.READ_WRITE,true); 

            // Set the request method and headers
            _httpConnection.setRequestMethod(HttpConnection.POST);
            _httpConnection.setRequestProperty("If-Modified-Since","29 Oct 1999 19:43:31 GMT");
            _httpConnection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
            _httpConnection.setRequestProperty("Content-Language", "en-US");



 if( PhotoToSend != null)
            //if(AttachPhotos._vctAccPhotos.size() > 0)
            {
                String[] strAccidentPhoto = {"AccidentPhoto1", "AccidentPhoto2", "AccidentPhoto3", "AccidentPhoto4", "AccidentPhoto5"};         

                for(int i=0; i<5; i++)
                {
                    String header = "Content-Disposition: form-data; name=\"file1\";filename=\""+ "AccidentPhoto"+ i +".jpg"+ "\"" + lineEnd + "Content-Type: application/octet-stream"+lineEnd+lineEnd;
                    byte[] composition = header.getBytes();
                    byte[] photoData = AttachPhotos.get(strAccidentPhoto[i]);
                    if(photoData != null)
                    { 
                        _outputStream.write(startBytes);
                        _outputStream.write(composition);
                        _outputStream.write(photoData);
                        _outputStream.write(endBytes);
                    }
                }
            }

в моем коде я использую User-Agent в качестве профиля / MIDP-2.0Конфигурация / CLDC-1.0.Делает ли это какие-либо проблемы для размещения нескольких файлов?Или есть ли другой способ размещения данных.Код не является исключением, но позволяет публиковать только файлы изображений.Чего мне не хватает в моем коде?

1 Ответ

0 голосов
/ 30 марта 2011

в своем коде я использую User-Agent в качестве профиля / Конфигурация MIDP-2.0 / CLDC-1.0.Это создает какие-либо проблемы при публикации нескольких файлов?

Нет. Я бы также рекомендовал не трогать этот заголовок, потому что ожидается, что ОС установит его наиболее корректно.

ОБНОВЛЕНИЕ: Благодаря gnuf - я ошибся, сказав:ОС настроит его самым подходящим образом ».Оказывается, такого заголовка не будет вообще, если вы его не установите.Однако я не думаю, что это может быть причиной, если вы не указали серверу отклонять запросы, если у них нет заголовка User-Agent (что маловероятно).

Или есть какой-либо другойспособ размещения данных.

Может быть несколько причин.По сути, вам нужно отправить запрос POST типа 'multipart / form-data'.Поэтому вам необходимо соответствовать формату такого запроса.Некоторые наиболее важные возможные проблемы в этом случае:

  1. Убедитесь, что вы используете правильные заголовки «Content-Length» и «Content-Type».«Content-Type» должен быть "multipart/form-data; boundary=YOUR_ACTUAL_BOUNDARY"
  2. Убедитесь, что вы не забыли добавить 2 дополнительных символа '-' к конечной границе.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...