PDA

View Full Version : Resolved Sending files via HTTP (HttpClient)



dan0
03-16-2009, 06:16 PM
I've put together code that can send one file at at time via HTTP; when I send more than one at a time the app hangs. It seems that the request entity is sending two different requests, rather than one with multiple files. Anyone know how to resolve this?

Following is the request entity header info:

--3D6atZKLBPujpCZzClN-wz3AJ0Eh-BBWlRr
Content-Disposition: form-data; name="imgFile[]"; filename="Inbox_Msg_Display.GIF"
Content-Type: application/octet-stream; charset=ISO-8859-1
Content-Transfer-Encoding: binary
--3D6atZKLBPujpCZzClN-wz3AJ0Eh-BBWlRr--

--A2cG-IXHLNC2Rk7kF3fQ5-bQPQpuDwmUU
Content-Disposition: form-data; name="imgFile[]"; filename="Table_Msg_Content.GIF"
Content-Type: application/octet-stream; charset=ISO-8859-1
Content-Transfer-Encoding: binary
--A2cG-IXHLNC2Rk7kF3fQ5-bQPQpuDwmUU--

Below is the code I'm using to create the request entity:


try{
for (File selectedFile : selectedFiles){
Part[] parts = {new FilePart("imgFile[]", selectedFile)};
post.setRequestEntity( new MultipartRequestEntity( parts, post.getParams() ) );
...
...
}
} catch (Exception e) {
...

dan0
03-26-2009, 02:11 AM
Figured out the solution, the code should be:



Part[] parts = new Part[selectedFiles.length]
int index = 0;
for (File selectedFile : selectedFiles){
parts[index] = new FilePart("imgFile[]", selectedFile);
index++;
}


The issue was with the I was using the for-loop. I was unnecessarily trying to create inner boundaries as well as an overall boundary for the request entity.