public void buildMultiPartFormFieldData()
{
try
{
this.outputStream = connection.getOutputStream();
this.data = new DataOutputStream(outputStream);
for(Map.Entry<String,Object> formdata : formData.entrySet())
{
String key =formdata.getKey();
writeToStream(data,boundary);
writeToStream(data,CRLF);
String className = formdata.getValue().getClass().getName();
if((key.equals("media") && key.equals("file")) || (className.indexOf("Stream")>-1) || (className.indexOf("File")>-1 ))
{
writeToStream(data,"Content-Disposition: form-data; name=\""+key+"\"; filename=\"sheik.jpg\"");
writeToStream(data,CRLF);
writeToStream(data,"Content-Type:form-data;image/jpeg");
writeToStream(data,CRLF+CRLF);
BufferedInputStream in = new BufferedInputStream((FileInputStream) formdata.getValue());
byte[] buff = new byte[1024];
int length;
while ((length = in.read(buff)) != -1)
{
data.write(buff, 0, length);
}
writeToStream(data,CRLF);
in.close();
}
else
{
writeToStream(data,"Content-Disposition: form-data; name=\""+key+"\"");
writeToStream(data,CRLF);
writeToStream(data,"Content-Type:text/plain;charset=UTF-8");
writeToStream(data,CRLF+CRLF);
data.write(((String)formdata.getValue()).getBytes("UTF-8"));
writeToStream(data,CRLF);
}
}
writeToStream(data,boundary + "--"+CRLF);
writeToStream(data,CRLF);
data.flush();
data.close();
}
catch(IOException ioe)
{
ioe.printStackTrace();
logger.info("I/O Error");
}
}
public void writeToStream(DataOutputStream dataStream,String value)
{
try
{
dataStream.writeBytes(value);
System.out.println(value);
}
catch(Exception e)
{
e.printStackTrace();
}
}