앞서 URL클래스와 URLConnection클래스의 차이를 알아봤다.
실제로 네트워크 통신을 수행하고 요청(Request)을 보내고 응답(Response)을 받아오는 역할을 하는 URLConnection의 메서드에 대해 알아보자.
https://standout.tistory.com/1522
void addRequestProperty(String key, String value)
HTTP 요청 헤더에 지정된 키-값 쌍을 추가합니다.
URLConnection connection = url.openConnection();
connection.addRequestProperty("User-Agent", "Mozilla/5.0");
void connect()
URL에 대한 연결을 시작합니다.
URLConnection connection = url.openConnection();
connection.connect();
boolean getAllowUserInteraction()
사용자 상호 작용 허용 여부를 반환합니다.
URLConnection connection = url.openConnection();
boolean allowUserInteraction = connection.getAllowUserInteraction();
int getConnectTimeout()
연결 제한 시간(밀리초)을 반환합니다.
URLConnection connection = url.openConnection();
int connectTimeout = connection.getConnectTimeout();
Object getContent()
URL의 콘텐츠를 읽어서 Object로 반환합니다.
URLConnection connection = url.openConnection();
Object content = connection.getContent();
Object getContent(Class[] classes)
URL의 콘텐츠를 지정된 클래스로 변환하여 반환합니다.
URLConnection connection = url.openConnection();
InputStream inputStream = (InputStream) connection.getContent(new Class[]{InputStream.class});
String getContentEncoding()
콘텐츠의 인코딩을 반환합니다.
URLConnection connection = url.openConnection();
String contentEncoding = connection.getContentEncoding();
int getContentLength()
콘텐츠의 길이를 반환합니다.
URLConnection connection = url.openConnection();
int contentLength = connection.getContentLength();
String getContentType()
콘텐츠 유형을 반환합니다.
URLConnection connection = url.openConnection();
String contentType = connection.getContentType();
long getDate()
콘텐츠가 생성된 날짜를 반환합니다.
URLConnection connection = url.openConnection();
long date = connection.getDate();
int getDefaultAllowUserInteraction()
기본 사용자 상호 작용 허용 여부를 반환합니다.
URLConnection connection = url.openConnection();
int defaultAllowUserInteraction = connection.getDefaultAllowUserInteraction();
String getDefaultRequestProperty(String key)
지정된 키에 대한 기본 요청 속성 값을 반환합니다.
URLConnection connection = url.openConnection();
String userAgent = connection.getDefaultRequestProperty("User-Agent");
boolean getDefaultUseCaches()
기본 캐시 사용 여부를 반환합니다.
URLConnection connection = url.openConnection();
boolean defaultUseCaches = connection.getDefaultUseCaches();
boolean getDoInput()
입력 스트림을 사용하는지 여부를 반환합니다.
URLConnection connection = url.openConnection();
boolean doInput = connection.getDoInput();
boolean getDoOutput()
출력 스트림을 사용하는지 여부를 반환합니다.
URLConnection connection = url.openConnection();
boolean doOutput = connection.getDoOutput();
long getExpiration()
캐시의 만료 날짜를 반환합니다.
URLConnection connection = url.openConnection();
long expiration = connection.getExpiration();
FileNameMap getFileNameMap()
파일 이름 매핑을 반환합니다.
URLConnection connection = url.openConnection();
FileNameMap fileNameMap = connection.getFileNameMap();
String getHeaderField(int n)
지정된 헤더 필드의 값을 반환합니다.
URLConnection connection = url.openConnection();
String headerField = connection.getHeaderField(0);
String getHeaderFieldDate(String name, long default)
지정된 헤더 필드의 날짜 값을 반환합니다.
URLConnection connection = url.openConnection();
String lastModified = connection.getHeaderFieldDate("Last-Modified", 0);
int getHeaderFieldInt(String name, int default)
지정된 헤더 필드의 정수 값을 반환합니다.
URLConnection connection = url.openConnection();
int contentLength = connection.getHeaderFieldInt("Content-Length", -1);
String getHeaderFieldKey(int n)
지정된 헤더 필드의 키를 반환합니다.
URLConnection connection = url.openConnection();
String headerFieldKey = connection.getHeaderFieldKey(0);
Map<String, List<String>> getHeaderFields()
모든 헤더 필드 및 해당 값을 포함하는 맵을 반환합니다.
URLConnection connection = url.openConnection();
Map<String, List<String>> headerFields = connection.getHeaderFields();
long getIfModifiedSince()
마지막 수정 이후로 변경된 자원의 날짜를 반환합니다.
URLConnection connection = url.openConnection();
long ifModifiedSince = connection.getIfModifiedSince();
InputStream getInputStream()
URL 연결의 입력 스트림을 반환합니다.
URLConnection connection = url.openConnection();
InputStream inputStream = connection.getInputStream();
long getLastModified()
자원이 마지막으로 수정된 날짜를 반환합니다.
URLConnection connection = url.openConnection();
long lastModified = connection.getLastModified();
OutputStream getOutputStream()
URL 연결의 출력 스트림을 반환합니다.
URLConnection connection = url.openConnection();
OutputStream outputStream = connection.getOutputStream();
Permission getPermission()
URL 연결에 대한 허가를 반환합니다.
URLConnection connection = url.openConnection();
Permission permission = connection.getPermission();
int getReadTimeout()
읽기 제한 시간(밀리초)을 반환합니다.
URLConnection connection = url.openConnection();
int readTimeout = connection.getReadTimeout();
Map<String, List<String>> getRequestProperties()
요청에 사용되는 모든 속성을 포함하는 맵을 반환합니다.
URLConnection connection = url.openConnection();
Map<String, List<String>> requestProperties = connection.getRequestProperties();
String getRequestProperty(String key)
지정된 키에 대한 요청 속성 값을 반환합니다.
URLConnection connection = url.openConnection();
String contentType = connection.getRequestProperty("Content-Type");
URL getURL()
URL 객체를 반환합니다.
URLConnection connection = url.openConnection();
URL connectedURL = connection.getURL();
boolean getUseCaches()
캐시 사용 여부를 반환합니다.
URLConnection connection = url.openConnection();
boolean useCaches = connection.getUseCaches();
String guessContentTypeFromName(String fname)
파일 이름을 기반으로 콘텐츠 유형을 추측합니다.
URLConnection connection = url.openConnection();
String contentType = connection.guessContentTypeFromName("example.pdf");
String guessContentTypeFromStream(InputStream is)
입력 스트림을 기반으로 콘텐츠 유형을 추측합니다.
URLConnection connection = url.openConnection();
InputStream inputStream = connection.getInputStream();
String contentType = connection.guessContentTypeFromStream(inputStream);
void setAllowUserInteraction(boolean defaultAllowUserInteraction)
기본 사용자 상호 작용 허용 여부를 설정합니다.
URLConnection connection = url.openConnection();
connection.setAllowUserInteraction(true);
void setDefaultRequestProperty(String key, String value)
기본 요청 속성 값을 설정합니다.
URLConnection connection = url.openConnection();
connection.setDefaultRequestProperty("User-Agent", "Mozilla/5.0");
void setDefaultUseCaches(boolean defaultUseCaches)
기본 캐시 사용 여부를 설정합니다.
URLConnection connection = url.openConnection();
connection.setDefaultUseCaches(false);
void setDoInput(boolean doInput)
입력 스트림 사용 여부를 설정합니다.
URLConnection connection = url.openConnection();
connection.setDoInput(true);
void setDoOutput(boolean doOutput)
출력 스트림 사용 여부를 설정합니다.
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
void setFileNameMap(FileNameMap map)
파일 이름 매핑을 설정합니다.
URLConnection connection = url.openConnection();
connection.setFileNameMap(new MimetypesFileTypeMap());
void setIfModifiedSince(long ifModifiedSince)
자원이 변경된 시간 이후에만 데이터를 가져오도록 설정합니다.
URLConnection connection = url.openConnection();
connection.setIfModifiedSince(System.currentTimeMillis() - 86400000); // 1 day ago
void setReadTimeout(int timeout)
읽기 제한 시간(밀리초)을 설정합니다.
URLConnection connection = url.openConnection();
connection.setReadTimeout(5000); // 5 seconds
void setRequestProperty(String key, String value)
요청 속성 값을 설정합니다.
URLConnection connection = url.openConnection();
connection.setRequestProperty("Content-Type", "application/json");
void setUseCaches(boolean useCaches)
캐시 사용 여부를 설정합니다.
URLConnection connection = url.openConnection();
connection.setUseCaches(false);