我需要在Java中使用HTTP“部分获取请求”消息,但我在互联网上找不到任何答案。
实际上,我知道如何发送“获取”消息,但我不知道如何发送“部分获取”消息。
以下代码显示了一些信息:
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]
//
////////////////////////////////////////////////////
////////////////////////////////////////////////////
}
}
}
答案 0 :(得分:1)
您的代码遍布各处,因此很难弄清楚您在自己的个人研究中的位置。但是假设您已经知道服务器端资源支持范围请求 - 要发送部分GET,您只需要做两件事:
Range:
标题一些伪代码:
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
}