예를 들어 http://www.android.com/ 웹 페이지를 검색하려면 Github 참조: 연결이 실패했지만 서버가 유용한 데이터를 전송한 경우 오류 스트림을 반환하는 https://gist.github.com/udacityandroid/d6a7bb21904046a91695 Github 참조의 전체 예제입니다. 그럼에도 불구. 일반적인 예는 HTTP 서버가 404로 응답하여 FileNotFoundException이 연결에 throw되지만 서버가 수행할 작업과 관련하여 제안사항이 포함된 HTML 도움말 페이지를 보낸 경우입니다. 이 예제에서는 URL에 아무 것도 쓰지 않기 때문에 이 집합을 false의 기본값으로 둡니다. HTTP 응답 메시지에서 상태 코드를 가져옵니다. 예를 들어 다음 상태 줄의 경우: 아래 샘플 코드는 네트워크 작업에 AsyncTask를 사용하는 방법(날씨 데이터 다운로드)을 보여 주며, 아래 샘플 코드는 다음과 같습니다. 이 샘플 코드를 Android에서 실행하려면 활동 클래스 MainActivity.java와 이 활동에 대한 레이아웃 파일이라는 두 개의 파일을 만들면 됩니다. 레이아웃에는 TextView와 단추라는 두 개의 보기만 있습니다. 주요 활동에서, 에 몇 가지 초기화가 있을 것 이다는텍스트 뷰 및 버튼에 대 한 메서드 만들기, 그리고 HttoURLConnection를 통해 날씨 데이터를 다운로드 하기 위한 AsyncTask 내부 클래스.
그런 다음 콜백 자체에 사용되는 인터페이스 만들기: 보안 관리자가 있는 경우 이 메서드는 먼저 보안 관리자의 checkSetFactory 메서드를 호출하여 작업이 허용되는지 확인합니다. 이로 인해 보안예외가 발생할 수 있습니다. 출력 스트리밍을 사용하도록 설정하면 인증 및 리디렉션을 자동으로 처리할 수 없습니다. 인증 또는 리디렉션이 필요한 경우 응답을 읽을 때 HttpRetryException이 throw됩니다. 이 예외는 오류의 세부 정보에 대해 쿼리할 수 있습니다. 이제 방금 만든 이 클래스를 사용하여 POST를 실행하려면 서버에 대한 다른 요청이 가까운 장래에 거의 발생하지 않는다는 것을 나타냅니다. disconnect()를 호출하면 이 HttpURLConnection 인스턴스가 다른 요청에 다시 사용될 수 있음을 암시해서는 안 됩니다. 응용 프로그램이 표시된 콘텐츠 길이보다 많은 데이터를 작성하려고 하거나 표시된 양을 쓰기 전에 응용 프로그램이 OutputStream을 닫는 경우 예외가 throw됩니다. . 출력을 위해 청크 인코딩 스트리밍 모드를 사용할 때의 청크 길이입니다.
값이 -1이면 출력에 대해 청크 인코딩이 비활성화됨을 의미합니다. 첫 번째 제네릭을 String 형식으로 설정하고 이를 사용하여 요청의 URL을 설정합니다. URL의 지정된 “파일” 구성 요소를 기반으로 개체의 콘텐츠 형식을 확인하려고 시도합니다. 기본적으로 HttpURLConnection의 이 구현은 서버가 gzip 압축을 사용하도록 요청하고 URLConnection.getInputStream()의 호출자에 대한 데이터를 자동으로 압축 해제합니다. 이 경우 콘텐츠 인코딩 및 콘텐츠 길이 응답 헤더가 지워집니다. Gzip 압축 요청 헤더에 허용 되는 인코딩을 설정 하 여 비활성화할 수 있습니다.: 잘하면이 HttpURLConnection 및 AsyncTask를 사용 하는 방법을 좀 더 잘 이해 하는 데 도움이. 기사 전반에 걸쳐 이야기했던 사용자 지정 콜백에 대해 여전히 당황스럽다면 여기에 약간의 설명이 있습니다. 입력 스트림의 시작 부분에 있는 문자를 기반으로 입력 스트림의 형식을 확인 하려고 합니다.