Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blackberry 用户代理和黑莓6.0?_Blackberry - Fatal编程技术网

Blackberry 用户代理和黑莓6.0?

Blackberry 用户代理和黑莓6.0?,blackberry,Blackberry,在我的黑莓OS 6.0应用程序中,我使用HttpConnection发布了多个图像文件, 这就是我正在尝试的 byte[] _dataToBePost = strPostData.getBytes(); String lineEnd = "\r\n"; String boundary = "----------------------------"; String boundaryStartBytes = "--------

在我的黑莓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);
                    }
                }
            }
byte[]\u dataToBePost=strPostData.getBytes();
字符串lineEnd=“\r\n”;
字符串边界=“------------------------------------”;
字符串boundaryStartBytes=“-----------------------------------\r\n”;
byte[]startBytes=boundaryStartBytes.getBytes();
字符串boundaryEndBytes=“\r\n--------------------------------------\r\n”;
byte[]endBytes=boundaryEndBytes.getBytes();
_httpConnection=(httpConnection)Connector.open(url,Connector.READ\u WRITE,true);
//设置请求方法和头
_setRequestMethod(httpConnection.POST);
_httpConnection.setRequestProperty(“如果自1999年10月29日19:43:31 GMT起修改”);
_setRequestProperty(“用户代理”、“配置文件/MIDP-2.0配置/CLDC-1.0”);
_setRequestProperty(“内容语言”,“en-US”);
如果(PhotoToSend!=null)
//如果(附件照片._vctacphotos.size()>0)
{
字符串[]strAccidentPhoto={“acidentphoto1”、“acidentphoto2”、“acidentphoto3”、“acidentphoto4”、“acidentphoto5”};
对于(int i=0;i
在我的代码中,我使用用户代理作为
配置文件/MIDP-2.0
配置/CLDC-1.0。这是在制造吗
发布多个文件有问题吗

        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);
                    }
                }
            }
不,我也建议不要碰这个标题,因为预期操作系统会以最正确的方式设置它

        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);
                    }
                }
            }
更新:多亏了gnuf-我说的“操作系统将以最合适的方式进行设置”是错误的。事实证明,除非您进行了设置,否则根本不会有这样的头。不过,我认为这不是原因,除非您指示服务器拒绝没有用户代理头的请求(这不太可能)

        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);
                    }
                }
            }
或者有没有其他方式来发布 数据

        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);
                    }
                }
            }
可能有一系列原因。基本上,您需要发送“多部分/表单数据”类型的POST请求。因此,您需要与此类请求的格式相对应。在这种情况下,一些最重要的问题可能是:

        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);
                    }
                }
            }
  • 确保使用了正确的“内容长度”和“内容类型”标题。“内容类型”应为
    “多部分/表单数据;边界=您的实际边界”
  • 确保您没有忘记向结束边界添加两个额外的“-”字符

  • 我不相信操作系统会设置用户代理,因为它是HTTP客户端的属性,而不是操作系统。当您使用黑莓的内置浏览器发出请求时,它会设置自己的用户代理字符串,但当您进行直接HTTP连接时,您可以自由选择字符串。如果您想模拟内置浏览器的用户代理string、 参考@gnuf:你完全正确-刚刚检查了我的应用程序发送的内容-没有用户代理标题。谢谢!