如何在J2ME中使用HTTP范围头?

时间:2011-03-17 14:04:07

标签: java java-me httpconnection

  1. 是否可以在HTTP中使用带有HTTP GET请求的范围标头?
  2. 如果是,那么?
  3. 我只想从服务器下载具有指定字节的字节。 即如果我想从0到255下载字节。

2 个答案:

答案 0 :(得分:1)

请参阅此示例代码

      HttpConnection connection = null;
      InputStream inputstream = null;
      try
      {
        connection = (HttpConnection) Connector.open(url); // Enter your URL here.
        //HTTP Request
        connection.setRequestMethod(HttpConnection.GET);
        connection.setRequestProperty("Content-Type","//text plain");
        connection.setRequestProperty("Connection", "close");
        // HTTP Response
        System.out.println("Status Line Code: " + connection.getResponseCode());
        System.out.println("Status Line Message: " + connection.getResponseMessage());
        if (connection.getResponseCode() == HttpConnection.HTTP_OK)
        {
          System.out.println(
            connection.getHeaderField(0)+ " " + connection.getHeaderFieldKey(0));        
          System.out.println(
           "Header Field Date: " + connection.getHeaderField("date"));
          String str;
          inputstream = connection.openInputStream();
          int length = (int) connection.getLength();
          if (length != -1)
          {
            byte incomingData[] = new byte[length];
            inputstream.read(incomingData);
            str = new String(incomingData);
          }
          else  
          {
            ByteArrayOutputStream bytestream = 
                  new ByteArrayOutputStream();
            int ch;
            while ((ch = inputstream.read()) != -1)
            {
              bytestream.write(ch);
            }
            str = new String(bytestream.toByteArray());
            bytestream.close();
          }
          System.out.println(str);
        }
      }
      catch(IOException error)
      {
       System.out.println("Caught IOException: " + error.toString());
      }
      finally
      {
        if (inputstream!= null)
        {
          try 
          { 
            inputstream.close();
          }
          catch( Exception error)
          {
             /*log error*/
          }
        }
        if (connection != null)
        {
          try
          {
             connection.close();
          }
          catch( Exception error)
          {
             /*log error*/
          }

答案 1 :(得分:0)

你可以试试这个:

HttpConnection httpConnection = (HttpConnection) Connector.open("http://www.server.com/file");
httpConnection.setRequestMethod(HttpConnection.GET);
httpConnection.setRequestProperty("Range","0-255");

检查文档:HttpConnection