Mega Code Archive

 
Categories / Java / J2ME
 

Send client request and Get server response

/*-------------------------------------------------- * ViewFile.java * * Send client request (method, header, body) * Get server response (status, header, body) * * Example from the book:     Core J2ME Technology * Copyright John W. Muchow   http://www.CoreJ2ME.com * You may use/modify for any non-commercial purpose *-------------------------------------------------*/ import javax.microedition.midlet.*; import javax.microedition.io.*; import java.io.*; public class ViewFile extends MIDlet {   private String url = "http://www.corej2me.com/midpbook_v1e1/ch14/getHeaderInfo.txt";   public void startApp()   {     try     {       processRequest();     }     catch (Exception e)     {       System.err.println("Msg: " + e.toString());     }   }       private void processRequest() throws IOException   {     HttpConnection http = null;     InputStream iStrm = null;          try     {       // Create the connection       http = (HttpConnection) Connector.open(url);              //----------------       // Client Request       //----------------       // 1) Send request method       http.setRequestMethod(HttpConnection.GET);              // 2) Send header information (this header is optional)       http.setRequestProperty("User-Agent", "Profile/MIDP-1.0 Configuration/CLDC-1.0"); //      http.setRequestProperty("If-Modified-Since", "Mon, 16 Jul 2001 22:54:26 GMT");       // If you experience IO problems, try        // removing the comment from the following line       //http.setRequestProperty("Connection", "close");                    // 3) Send body/data - No data for this request              //----------------       // Server Response       //----------------       System.out.println("url: " + url);       System.out.println("-------------------------");                    // 1) Get status Line       System.out.println("Msg: " + http.getResponseMessage());                         System.out.println("Code: " + http.getResponseCode());                              // 2) Get header information        if (http.getResponseCode() == HttpConnection.HTTP_OK)       {         System.out.println("field 0: " + http.getHeaderField(0));                 System.out.println("field 1: " + http.getHeaderField(1));         System.out.println("field 2: " + http.getHeaderField(2));                 System.out.println("-------------------------");                          System.out.println("key 0: " + http.getHeaderFieldKey(0));                 System.out.println("key 1 : " + http.getHeaderFieldKey(1));                 System.out.println("key 2: " + http.getHeaderFieldKey(2));                         System.out.println("-------------------------");                                             System.out.println("content: " + http.getHeaderField("content-type"));         System.out.println("date: " + http.getHeaderField("date"));         System.out.println("last-modified: " + http.getHeaderField("last-modified"));                                  System.out.println("-------------------------");         // 3) Get data (show the file contents)         String str;         iStrm = http.openInputStream();         int length = (int) http.getLength();         if (length != -1)         {           // Read data in one chunk           byte serverData[] = new byte[length];           iStrm.read(serverData);           str = new String(serverData);         }         else  // Length not available...         {           ByteArrayOutputStream bStrm = new ByteArrayOutputStream();                             // Read data one character at a time           int ch;           while ((ch = iStrm.read()) != -1)             bStrm.write(ch);              str = new String(bStrm.toByteArray());           bStrm.close();                         }                  System.out.println("File Contents: " + str);                  //-----------------------------         // Show connection information         //-----------------------------         System.out.println("Host: " + http.getHost());         System.out.println("Port: " + http.getPort());         System.out.println("Type: " + http.getType());                          //        System.out.println("File: " + http.getFile());                         //        System.out.println("Protocol: " + http.getProtocol());                         //        System.out.println("URL: " + http.getURL());                                         //        System.out.println("Query: " + http.getQuery());                                       }     }catch(Exception e){        e.printStackTrace();          }finally{       // Clean up       if (iStrm != null)         iStrm.close();       if (http != null)         http.close();     }   }   public void pauseApp(){}   public void destroyApp(boolean unconditional){ } }