首页 > 学院 > 开发设计 > 正文

用户发送要求和接收服务器响应

2019-11-18 16:17:33
字体:
来源:转载
供稿:网友
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){ }
}

(出处:http://www.VeVb.com)



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表