Hi Tim,
I am trying to do http post with multipart/related content type. I wrote the code but it always gives exception when binary data starts to be written. can you look at see what is wrong? Thanks
c = (HttpConnection)Connector.open(url);
appM.gprog[pos].setValue((int)(10));
String axml="<?xml version='1.0'?><entry xmlns='http://www.w3.org/2005/Atom' " +
"xmlns:media='http://search.yahoo.com/mrss/' xmlns:yt='http://gdata.youtube.com/schemas/2007'>" +
" <media:group> <media:title type='plain'>Bad Wedding Toast</media:title>" +
" <media

escription type='plain'> I gave a bad toast at my friend's wedding." +
" </media

escription> <media:category" +
" scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>People" +
" </media:category> <media:keywords>toast, wedding</media:keywords>" +
" </media:group></entry>";
// Set the request method and headers
c.setRequestMethod(HttpConnection.POST);
c.setRequestProperty("Host", "uploads.gdata.youtube.com");
c.setRequestProperty("Authorization", "GoogleLogin auth="+appM.utubeAuth);
c.setRequestProperty("X-GData-Client", appM.clientid);
c.setRequestProperty("X-GData-Key", "key="+appM.developerkey);
c.setRequestProperty("Slug", "myvideo.3gp");
c.setRequestProperty("Content-Type", "multipart/related; boundary="+BOUNDARY);
// String consize=new String()
String message1 = "";
message1 += "--"+BOUNDARY + CrLf;
message1 += "Content-Type: application/atom+xml; charset=UTF-8" + CrLf+ CrLf;
message1 += axml;
message1 += CrLf+"--"+BOUNDARY + CrLf;
message1 += "Content-Type: video/3gpp" + CrLf;
message1 += "Content-Transfer-Encoding: binary" + CrLf+ CrLf;
// the image is sent between the messages in the multipart message.
String message2 = "";
message2 += CrLf+"--"+BOUNDARY + "--";
String contlen=(new Long(appM.blockSize[2]+message1.length()+message2.length())).toString();
c.setRequestProperty("Content-Length", contlen);
c.setRequestProperty("Connection", "close");
os = c.openOutputStream();
os.write(message1.getBytes());
// os.write(appM.anim[2]);
int index = 0;
int size = 1024;
do{
System.out.println("write:" + index);
if((index+size)>appM.anim[2].length){
size = appM.anim[2].length - index;
}
os.write(appM.anim[2], index, size);
index+=size;
}while(index<appM.anim[2].length);
os.write(message2.getBytes());