HTTP status code
List of HTTP status codes: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
java.net.HttpURLConnection.getResponseCode(): Gets the status code from an HTTP response message.
For example: the following codes from w w w . c ode java. net/java-se/networking/use-httpurlconnection-to-download-file-from-an-http-url
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
* A utility that downloads a file from a URL.
* @author www.codejava.net
*/
public class HttpDownloadUtility {
private static final int BUFFER_SIZE = 4096;
/**
* Downloads a file from a URL
* @param fileURL HTTP URL of the file to be downloaded
* @param saveDir path of the directory to save the file
* @throws IOException
*/
public static void downloadFile(String fileURL, String saveDir) throws MalformedURLException, IOException{
URL url = new URL(fileURL);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
int responseCode = httpConn.getResponseCode();
//always check HTTP response code first
if(responseCode == HttpURLConnection.HTTP_OK){
String fileName = "";
String disposition = httpConn.getHeaderField("Content-Disposition");
String contentType = httpConn.getContentType();
int contentLength = httpConn.getContentLength();
if(disposition!=null){
//extracts file name from hearder field
int index = disposition.indexOf("filename=");
if(index>0){
fileName = disposition.substring(index + 10, disposition.length() - 1 );
}
} else {
// extracts file name from URL
fileName = fileURL.substring(fileURL.lastIndexOf("/")+1, fileURL.length());
}
System.out.println("Content-Type = "+contentType);
System.out.println("Content-Disposition = "+disposition);
System.out.println("Content-Length = "+ contentLength);
System.out.println("fileName = "+fileName);
// opens input stream from the HTTP connection
InputStream inputStream = httpConn.getInputStream();
String saveFilePath = saveDir + File.separator + fileName;
// opens an output stream to save into file
FileOutputStream outputStream = new FileOutputStream(saveFilePath);
int bytesRead = -1;
byte[] buffer = new byte[BUFFER_SIZE];
while((bytesRead=inputStream.read(buffer))!=-1){
outputStream.write(buffer,0,bytesRead);
}
outputStream.close();
inputStream.close();
System.out.println("File downloaded");
}else{
System.out.println("No file to download. Server replied HTTP code: "+responseCode);
}
httpConn.disconnect();
}
}
h t t p : / / z h . w i k i pedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81
h t t p : / / w w w .c n b l o g s . c o m / tankxiao/archive/2013/01/08/2818542.html#WhatsStatusCode
java.net.HttpURLConnection.getResponseCode(): Gets the status code from an HTTP response message.
For example: the following codes from w w w . c ode java. net/java-se/networking/use-httpurlconnection-to-download-file-from-an-http-url
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
* A utility that downloads a file from a URL.
* @author www.codejava.net
*/
public class HttpDownloadUtility {
private static final int BUFFER_SIZE = 4096;
/**
* Downloads a file from a URL
* @param fileURL HTTP URL of the file to be downloaded
* @param saveDir path of the directory to save the file
* @throws IOException
*/
public static void downloadFile(String fileURL, String saveDir) throws MalformedURLException, IOException{
URL url = new URL(fileURL);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
int responseCode = httpConn.getResponseCode();
//always check HTTP response code first
if(responseCode == HttpURLConnection.HTTP_OK){
String fileName = "";
String disposition = httpConn.getHeaderField("Content-Disposition");
String contentType = httpConn.getContentType();
int contentLength = httpConn.getContentLength();
if(disposition!=null){
//extracts file name from hearder field
int index = disposition.indexOf("filename=");
if(index>0){
fileName = disposition.substring(index + 10, disposition.length() - 1 );
}
} else {
// extracts file name from URL
fileName = fileURL.substring(fileURL.lastIndexOf("/")+1, fileURL.length());
}
System.out.println("Content-Type = "+contentType);
System.out.println("Content-Disposition = "+disposition);
System.out.println("Content-Length = "+ contentLength);
System.out.println("fileName = "+fileName);
// opens input stream from the HTTP connection
InputStream inputStream = httpConn.getInputStream();
String saveFilePath = saveDir + File.separator + fileName;
// opens an output stream to save into file
FileOutputStream outputStream = new FileOutputStream(saveFilePath);
int bytesRead = -1;
byte[] buffer = new byte[BUFFER_SIZE];
while((bytesRead=inputStream.read(buffer))!=-1){
outputStream.write(buffer,0,bytesRead);
}
outputStream.close();
inputStream.close();
System.out.println("File downloaded");
}else{
System.out.println("No file to download. Server replied HTTP code: "+responseCode);
}
httpConn.disconnect();
}
}
h t t p : / / z h . w i k i pedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81
h t t p : / / w w w .c n b l o g s . c o m / tankxiao/archive/2013/01/08/2818542.html#WhatsStatusCode
评论
发表评论