2013-03-09 3 views
2

мне нужно использовать HTTP «Частичное Get сообщение запроса в Java, но я не мог найти ответы в Интернете.HTTP «Частичное» Получить сообщение запроса в Java

На самом деле, я знаю, как отправить» получить . "сообщение, но я не знаю, как отправить„частичный GET“один

Приведенный ниже код показывает некоторую информацию:

 else if(args.length == 0){ // 5 OLACAK 
      con.setRequestMethod("HEAD"); 

      fromURL = new BufferedInputStream(con.getInputStream(), bufSize); 
      toFile = new BufferedOutputStream(new FileOutputStream(outputFile), bufSize); 

      if(con.getResponseCode() == HttpURLConnection.HTTP_OK){ 

       byte startRange = 0; //Byte.parseByte(args[3]); 
       byte finishRange = 25;//Byte.parseByte(args[4]); 

       if(startRange < 0 || finishRange > ((byte)con.getContentLength()) 
         || startRange > finishRange){ 
        System.out.println("Range is not OK."); 
       }else{      

       //////////////////////////////////////////////////// 
       //////////////////////////////////////////////////// 
       // 
       // I need to send a partial get message here 
       // Range should in between [startRange, finishRange] 
       // 
       //////////////////////////////////////////////////// 
       //////////////////////////////////////////////////// 

       } 
      } 
     } 

ответ

1

Ваш код повсюду, поэтому его трудно понять, где вы находитесь в своих личных исследованиях. Но давайте предположим, что вы уже знаете, что серверный ресурс поддерживает ra Запросы NGE - отправить частичный GET вам просто нужно сделать две вещи:

  1. Включите Range: заголовок с начала и конца диапазона, которую вы ищете
  2. Обрабатывать ответ, отметив, что сервер должен возвращать код состояния '206 - Partial Content'

Некоторые псевдокода:

conn.setRequestMethod("GET"); 
conn.setDoInput(true); 
conn.setDoOutput(true); 
conn.addRequestProperty("Range", "bytes=0-25"); 
BufferedReader reader = new BufferedReader(new InputStreamReader(
     conn.getOutputStream())); 
if(conn.getResponseCode() == 206) { 
    // process stream here 
} 
+0

В java, как я могу добавить диапазон в ** _ setRequestMethod() _ **. Я не мог понять эту часть. Спасибо за ваш ответ. –

+0

Вы не добавляете его в 'setRequestMethod', вы указываете заголовок' Range: '(который я уже показал, как это сделать в ответе). – Perception

+0

Этот псевдокод действительно полезен, спасибо за ваш ответ еще раз. –

 Смежные вопросы

  • Нет связанных вопросов^_^