java. net 사용 하기

13538 단어 java.net
java. net 사용 - Google App Engine - Google 코드
java. net 사용 하기
자바 표준 라 이브 러 리 java.net.URLConnection 를 사용 하여 자바 응용 프로그램 을 통 해 HTTP 와 HTTPS 연결 을 만 들 수 있 습 니 다.App Engine 은 인터넷 주소 추출 서 비 스 를 사용 하여 이 인 터 페 이 스 를 실현 합 니 다.
자바. net 에 대한 자세 한 정 보 는 Sun 의 java. net. URLConnection 문서 참조 하 시기 바 랍 니 다.
  • 사이트 주소 에 대한 간단 한 요청
  • HttpURLConnection 사용 하기
  • 요청 헤더 설정
  • 방향 을 바꾸다
  • 지원 되 지 않 는 java. net 기능
  • 저급 API 기능

  • 사이트 주소 에 대한 간단 한 요청
    특정한 사이트 의 페이지 내용 을 가 져 오 는 간단 한 방법 은 java.net.URL 대상 을 만 든 다음 에 openStream() 방법 을 호출 하 는 것 이다.이 방법 은 연결 을 만 들 고 HTTP GET 요청 을 보 내 며 응답 데 이 터 를 검색 하 는 상세 한 정 보 를 처리 할 수 있 습 니 다.
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.IOException;
    
    // ...
            try {
                URL url = new URL("http://www.example.com/atom.xml");
                BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
                String line;
    
                while ((line = reader.readLine()) != null) {
                    // ...
                }
                reader.close();
    
            } catch (MalformedURLException e) {
                // ...
            } catch (IOException e) {
                // ...
            }

    HttpURLConnection 사용 하기
    더 복잡 한 요청 에 대해 서 는 URL 대상 openConnection() 방법 을 사용 하여 URLConnection 대상 을 가 져 올 수 있 습 니 다.요청 을 보 내기 전에 이 대상 을 더 많은 정보 로 준비 할 수 있 습 니 다.요청 을 하려 면 URLConnection 의 방법 을 호출 하 십시오. 예 를 들 어 getInputStream() 또는 getOutputStream().
    App Engine 의 URLConnection 은 원 격 호스트 와 영구적 으로 연결 되 지 않 습 니 다.프로그램 이 요청 데 이 터 를 설정 하거나 출력 흐름 을 기록 할 때 요청 데 이 터 를 메모리 에 저장 합 니 다.응용 프로그램 이 응답 과 관련 된 모든 데 이 터 를 방문 할 때 입력 흐름 (또는 호출 connect() 방법) 을 얻 으 면 App Engine 은 요청 데 이 터 를 통 해 사이트 주소 추출 서 비 스 를 호출 하여 응답 을 얻 고 연결 을 닫 고 응답 데 이 터 를 되 돌려 줍 니 다.
    다음 예 는 일부 폼 데 이 터 를 통 해 사이트 주소 에 HTTP POST 요청 을 보 냅 니 다.
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLEncoder;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    
    // ...
            String message = URLEncoder.encode("my message", "UTF-8");
    
            try {
                URL url = new URL("http://www.example.com/comment");
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setDoOutput(true);
                connection.setRequestMethod("POST");
    
                OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
                writer.write("message=" + message);
                writer.close();
        
                if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
                    // OK
                } else {
                    // Server returned HTTP error code.
                }
            } catch (MalformedURLException e) {
                // ...
            } catch (IOException e) {
                // ...
            }

    요청 헤더 설정
    전송 요청 에 HTTP 레이 블 을 설정 하려 면 HttpURLConnection setRequestProperty() 방법 을 사용 하 십시오.
            connection.setRequestProperty("X-MyApp-Version", "2.7.3");

    방향 을 바꾸다
    기본적으로 HttpURLConnection 은 HTTP 에 따라 방향 을 바 꿉 니 다.사이트 추출 서 비 스 는 최대 5 개의 재 설정 을 따 를 것 이다.
    아래 의 방향 변경 을 중단 하려 면 HttpURLConnection setInstanceFollowRedirects() 방법 을 사용 하 십시오.
            connection.setInstanceFollowRedirects(false);

    지원 되 지 않 는 java. net 기능
    웹 주소 추출 서 비 스 는 영구적 인 HTTP 연결 을 지원 하지 않 습 니 다.응용 프로그램 이 URLConnection 대상 을 사용 하여 응답 데 이 터 를 방문 할 때 App Engine 은 웹 주소 추출 서 비 스 를 호출 하여 요청 을 완료 합 니 다.응답 데이터 에 접근 한 후 요청 데 이 터 를 수정 할 수 없습니다.
    프로그램 이 요청 에 명시 적 연결 시간 을 초과 할 수 없습니다.
    저급 API 기능
    사이트 추출 서 비 스 는 전송 요청 과 응답 하 는 데이터 크기 를 제한 합 니 다.java. net API 를 사용 할 때 이 제한 보다 큰 데 이 터 를 알림 없 이 차단 합 니 다.저급 인터넷 주 소 를 통 해 API 를 추출 하면 알림 없 이 차단 하거나 제한 을 초과 한 상태 에서 이상 을 일 으 킬 지 여 부 를 지정 할 수 있다.

    좋은 웹페이지 즐겨찾기