- From: Nirmalkumar - Patil <npatil@cs.tamu.edu>
- Date: Sun, 3 Aug 1997 15:47:01 -0500 (CDT)
- To: www-jigsaw@w3.org
Hi
I wrote the following piece to implement the multipart/x-mixed-replace
MIME type. It appears that everything is being written onto the
socket connection fine but Netscape is not able to interpret whatever
is received...
Can anyone tell me where I am going wrong here.
Thanks,
Nirmal.
npatil@cs.tamu.edu
-------------
// JigsawTest4.java
package w3c.jigsaw.contrib;
import java.util.*;
import java.io.*;
import w3c.jigsaw.http.*;
import w3c.jigsaw.forms.*;
import w3c.jigsaw.html.*;
import w3c.tools.store.*;
import w3c.www.http.*;
import w3c.www.mime.*;
import w3c.jigsaw.resources.*;
public class JigsawTest4 extends HTTPResource {
StringBuffer buf = null;
String contents = null;
static int testvar = 1;
//private Thread tr = null;
InputStream in = null;
DataOutputStream dos = null;
// Boundary attribute index
protected static int ATTR_BOUNDARY = -1;
static {
Attribute a = null;
Class cls = null;
try {
cls = Class.forName("w3c.jigsaw.contrib.JigsawTest4");
} catch(Exception e) { e.printStackTrace(); System.exit(1); }
a = new StringAttribute("boundary","somebdry",Attribute.EDITABLE);
ATTR_BOUNDARY = AttributeRegistry.registerAttribute(cls,a);
}
public Reply get(Request request)
//public Reply post(Request request)
throws HTTPException {
String pnames[] = {"boundary"};
String pvalues[] = new String[1];
pvalues[0] = (String)getValue(ATTR_BOUNDARY,null);
MimeType mtype = new MimeType("multipart","x-mixed-replace",pnames,pvalues);
Client client = request.getClient();
if ( client != null )
dos = client.getOutputStream();
else System.out.println("Could not get ref. to output stream");
// Dump the headers
Reply reply = request.makeReply(HTTP.OK);
reply.setContentType(mtype);
reply.setKeepConnection(true);
reply.dump(dos);
//System.out.println("So far so Good");
try {
//dos.writeChars("Content-Type: multipart/x-mixed-replace;boundary=somebdry\n");
dos.writeChars("--somebdry\n");
dos.flush();
} catch( Exception e) {e.printStackTrace();}
String separator = "--"+getValue(ATTR_BOUNDARY,null)+"\n";
System.out.println(separator);
// Write the boundary to the stream before
//buf = new StringBuffer();
while( client.isRunning() ) {
if( client.isInterrupted() )
break;
buf = new StringBuffer();
buf.append("Content-Type: text/plain \n\n");
buf.append("I am testing !! "+(new Integer(testvar)).toString()+"\n");
testvar++;
buf.append("\n");
buf.append(separator+"\n");
try {
dos.writeChars(buf.toString());
dos.flush();
} catch (IOException e) {
e.printStackTrace();
Thread th = Thread.currentThread();
th.stop();
}
try {
System.out.println("Sleeping now");
Thread.sleep(1500);
} catch (Exception e) { e.printStackTrace(); }
}
reply.setStream((InputStream)null);
return reply;
//return null;
}
}
-------------
Received on Sunday, 3 August 1997 16:49:14 UTC