在我的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作为Profile / MIDP-2.0 Configuration / CLDC-1.0。发布多个文件会产生任何问题吗?或者是否有其他方式发布数据。 代码不会通过任何异常,但只能发布图像文件。 我的代码中缺少什么?
答案 0 :(得分:0)
在我的代码中我使用User-Agent作为 资料/ MIDP-2.0 配置/ CLDC-1.0。这是在制作 发布多个文件的任何问题?
没有。 我还建议不要触摸此标题,因为预计操作系统会以最恰当的方式设置它。
更新:感谢gnuf - 我说“操作系统会以最恰当的方式设置它”是不正确的。事实证明,除非你设置它,否则根本就没有这样的标题。但是,我不认为这可能是一个原因,除非您指示服务器拒绝请求,如果他们没有User-Agent标头(这不太可能)。
还是有其他方式发布 数据。
可能有多种原因。基本上你需要的是发送'multipart / form-data'类型的POST请求。所以你需要对应这种请求的格式。在这种情况下,一些最重要的可能问题是:
"multipart/form-data; boundary=YOUR_ACTUAL_BOUNDARY"