FileDocCategorySizeDatePackage
FormPoster.javaAPI DocExample2490Sat Sep 09 20:52:40 BST 2000None

FormPoster

public class FormPoster extends Object

Fields Summary
private URL
url
private QueryString
query
Constructors Summary
public FormPoster(URL url)

 
   
        
    if (!url.getProtocol().toLowerCase().startsWith("http")) {
      throw new IllegalArgumentException("Posting only works for http URLs");   
    }    
    this.url = url;
  
Methods Summary
public voidadd(java.lang.String name, java.lang.String value)

    query.add(name, value);    
  
public java.net.URLgetURL()

    return this.url; 
  
public static voidmain(java.lang.String[] args)


    URL url;

    if (args.length > 0) {
      try {
        url = new URL(args[0]);
      }
      catch (MalformedURLException e) {
        System.err.println("Usage: java FormPoster url");
        return;
      }
    }
    else {
      try {
        url = new URL("http://hoohoo.ncsa.uiuc.edu/cgi-bin/post-query");
      }
      catch (MalformedURLException e) { // shouldn't happen
        System.err.println(e);
        return; 
      }
    }

    FormPoster poster = new FormPoster(url);
    poster.add("name", "Elliotte Rusty Harold");
    poster.add("email", "elharo@metalab.unc.edu");
    
    try {
      InputStream in = poster.post();
      in = new BufferedInputStream(in);
      // Read the response
      InputStreamReader r = new InputStreamReader(in);
      int c;
      while((c = r.read()) != -1) {
        System.out.print((char) c);
      }
      System.out.println();
      in.close();
    }
    catch (IOException e) {
      System.err.println(e);
      e.printStackTrace();   
    }

  
public java.io.InputStreampost()


    // open the connection and prepare it to POST
    URLConnection uc = url.openConnection();
    System.out.println("do output: " + uc.getDoOutput());
    System.out.println("do input: " + uc.getDoInput());
    uc.setDoOutput(true);
    System.out.println("do output: " + uc.getDoOutput());
    System.out.println("do input: " + uc.getDoInput());
    OutputStreamWriter out = new OutputStreamWriter(
     new BufferedOutputStream(uc.getOutputStream()), "ASCII");
    InputStream in = uc.getInputStream();

    // The POST line, the Content-type header,
    // and the Content-length headers are sent by the URLConnection.
    // We just need to send the data
    out.write(query.toString());
    out.write("\r\n");
    out.flush();
    out.close();


    // Return the response
     return in;