モジュール java.base
パッケージ java.net

クラスURLConnection

java.lang.Object
java.net.URLConnection
直系の既知のサブクラス:
HttpURLConnection, JarURLConnection

public abstract class URLConnection
extends Object
抽象クラスURLConnectionは、アプリケーションとURLとの間の通信リンクを表すすべてのクラスのスーパー・クラスです。 このクラスのインスタンスを使用して、URLで参照するリソースの読み込みと書込みの両方を行うことができます。

一般に、URLへの接続の作成は、次のような複数のステップが必要となります。

  1. 接続オブジェクトは、URL上でopenConnectionメソッドを呼び出すことによって作成されます。
  2. セットアップ・パラメータと一般要求プロパティを操作する。
  3. リモート・オブジェクトへの実際の接続は、connectメソッドを使用して行われます。
  4. リモート・オブジェクトが使用可能になる。 リモート・オブジェクトのヘッダー・フィールドと内容にアクセスできるようになる。

セットアップ・パラメータを修正するには次のメソッドを使用します。

  • setAllowUserInteraction
  • setDoInput
  • setDoOutput
  • setIfModifiedSince
  • setUseCaches

一般要求プロパティを修正するには次のメソッドを使用します。

  • setRequestProperty

AllowUserInteractionパラメータとUseCachesパラメータのデフォルト値は、setDefaultAllowUserInteractionメソッドとsetDefaultUseCachesメソッドを使用して設定できます。

上記のsetメソッドには対応するgetメソッドがあり、それらのメソッドを使えば、パラメータまたは一般要求プロパティの値を取得できます。 具体的にどのパラメータや一般要求プロパティが適用可能であるかは、プロトコルごとに異なります。

リモート・オブジェクトへの接続を確立したあと、ヘッダー・フィールドと内容にアクセスするには次のメソッドを使用します。

  • getContent
  • getHeaderField
  • getInputStream
  • getOutputStream

一部のヘッダー・フィールドは頻繁にアクセスされます。 関連するメソッドを次に示します。

  • getContentEncoding
  • getContentLength
  • getContentType
  • getDate
  • getExpiration
  • getLastModified

上記を使えば、これらのフィールドに容易にアクセスできます。 getContentTypeメソッドは、リモート・オブジェクトの型を判別するときにgetContentメソッドによって使用されます。サブクラスでは、getContentTypeメソッドをオーバーライドすると便利なことがあります。

通常の場合、接続前のパラメータと一般要求プロパティはすべて、無視してかまいません。接続前のパラメータと要求プロパティは適切な値にデフォルト設定されます。 このインタフェースの大部分のクライアントで関心を持たれるメソッドは、2つしかありません。getInputStreamgetContentです。これらは、URLクラスの簡易メソッドによってミラー化されます。

http接続の要求プロパティとヘッダー・フィールドの詳細は、次のサイトを参照してください。

 http://www.ietf.org/rfc/rfc2616.txt
 
要求後にURLConnectionInputStreamまたはOutputStream上でclose()メソッドを呼び出すと、特定のプロトコル仕様で他の動作が規定されていないかぎり、このインスタンスに関連付けられたネットワーク・リソースが解放されます。

導入されたバージョン:
1.0
関連項目:
URL.openConnection(), connect(), getContent(), getContentEncoding(), getContentLength(), getContentType(), getDate(), getExpiration(), getHeaderField(int), getHeaderField(java.lang.String), getInputStream(), getLastModified(), getOutputStream(), setAllowUserInteraction(boolean), setDefaultUseCaches(boolean), setDoInput(boolean), setDoOutput(boolean), setIfModifiedSince(long), setRequestProperty(java.lang.String, java.lang.String), setUseCaches(boolean)
  • フィールドのサマリー

    フィールド
    修飾子と型 フィールド 説明
    protected boolean allowUserInteraction
    trueの場合、このURLは、ユーザーとの対話(認証ダイアログのポップアップなど)を許可することが意味をなすコンテキストで検査されています。
    protected boolean connected
    falseの場合、この接続オブジェクトは、指定されたURLへの通信リンクを作成していません。
    protected boolean doInput
    この変数は、setDoInputメソッドによって設定されています。
    protected boolean doOutput
    この変数は、setDoOutputメソッドによって設定されています。
    protected long ifModifiedSince
    一部のプロトコルでは、特定の時間よりもあとにオブジェクトが更新されていない場合に、オブジェクトのフェッチを省略することができます。
    protected URL url
    URLは、World Wide Web上にあるリモート・オブジェクトを表します。このリモート・オブジェクトに対して、接続を開きます。
    protected boolean useCaches
    trueの場合、このプロトコルは、可能な場合はいつでもキャッシュを使用することが許可されています。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子 コンストラクタ 説明
    protected URLConnection​(URL url)
    指定されたURLへのURL接続を構築します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    void addRequestProperty​(String key, String value)
    キーと値のペアで指定された一般要求プロパティを追加します。
    abstract void connect()
    このURLが参照するリソースへの通信リンクを確立します(通信リンクが確立されていない場合)。
    boolean getAllowUserInteraction()
    このオブジェクトのallowUserInteractionフィールドの値を返します。
    int getConnectTimeout()
    接続タイム・アウトの設定を返します。
    Object getContent()
    このURL接続のコンテンツを取得します。
    Object getContent​(Class<?>[] classes)
    このURL接続のコンテンツを取得します。
    String getContentEncoding()
    content-encodingヘッダー・フィールドの値を返します。
    int getContentLength()
    content-lengthヘッダー・フィールドの値を返します。
    long getContentLengthLong()
    content-lengthヘッダー・フィールドの値をlong型として返します。
    String getContentType()
    content-typeヘッダー・フィールドの値を返します。
    long getDate()
    dateヘッダー・フィールドの値を返します。
    static boolean getDefaultAllowUserInteraction()
    allowUserInteractionフィールドのデフォルト値を返します。
    static String getDefaultRequestProperty​(String key)
    非推奨。
    URLConnectionの該当インスタンスを取得したあとは、インスタンス固有のgetRequestPropertyメソッドを使用します。
    boolean getDefaultUseCaches()
    URLConnectionuseCachesフラグのデフォルト値を返します。
    static boolean getDefaultUseCaches​(String protocol)
    指定されたプロトコルのuseCachesフラグのデフォルト値を返します。
    boolean getDoInput()
    このURLConnectiondoInputフラグの値を返します。
    boolean getDoOutput()
    このURLConnectiondoOutputフラグの値を返します。
    long getExpiration()
    expiresヘッダー・フィールドの値を返します。
    static FileNameMap getFileNameMap()
    データ・ファイルからファイル名マップ(mimetable)をロードします。
    String getHeaderField​(int n)
    n番目のヘッダー・フィールドの値を返します。
    String getHeaderField​(String name)
    指定されたヘッダー・フィールドの値を返します。
    long getHeaderFieldDate​(String name, long Default)
    指定されたフィールドを日付として構文解析した値を返します。
    int getHeaderFieldInt​(String name, int Default)
    指定されたフィールドを数値として構文解析した値を返します。
    String getHeaderFieldKey​(int n)
    n番目のヘッダー・フィールドのキーを返します。
    long getHeaderFieldLong​(String name, long Default)
    指定されたフィールドを数値として構文解析した値を返します。
    Map<String,​List<String>> getHeaderFields()
    ヘッダー・フィールドの変更不可能なマップを返します。
    long getIfModifiedSince()
    このオブジェクトのifModifiedSinceフィールドの値を返します。
    InputStream getInputStream()
    この接続からの入力を受け取る入力ストリームを返します。
    long getLastModified()
    last-modifiedヘッダー・フィールドの値を返します。
    OutputStream getOutputStream()
    この接続に書込みを行う出力ストリームを返します。
    Permission getPermission()
    このオブジェクトが表す接続のために必要なアクセス権を表すPermissionオブジェクトを返します。
    int getReadTimeout()
    読取りタイム・アウトの設定を返します。このオプションが無効(タイム・アウトが無限)の場合は0を返します。
    Map<String,​List<String>> getRequestProperties()
    この接続の一般要求プロパティの変更不可能なマップを返します。
    String getRequestProperty​(String key)
    この接続の指定された一般要求プロパティの値を返します。
    URL getURL()
    このURLConnectionURLフィールドの値を返します。
    boolean getUseCaches()
    このURLConnectionuseCachesフィールドの値を返します。
    static String guessContentTypeFromName​(String fname)
    URLの指定された「ファイル」コンポーネントを基に、オブジェクトのコンテンツ型を推測します。
    static String guessContentTypeFromStream​(InputStream is)
    入力ストリームの先頭の文字を基に、入力ストリームの種類の決定を試みます。
    void setAllowUserInteraction​(boolean allowuserinteraction)
    このURLConnectionallowUserInteractionフィールドの値を設定します。
    void setConnectTimeout​(int timeout)
    このURLConnectionが参照するリソースへの通信リンクのオープン時に、指定されたミリ秒単位のタイム・アウト値が使用されるように設定します。
    static void setContentHandlerFactory​(ContentHandlerFactory fac)
    アプリケーションのContentHandlerFactoryを設定します。
    static void setDefaultAllowUserInteraction​(boolean defaultallowuserinteraction)
    将来に作成されるすべてのURLConnectionオブジェクトのallowUserInteractionフィールドについて、デフォルト値を指定された値に設定します。
    static void setDefaultRequestProperty​(String key, String value)
    非推奨。
    URLConnectionの該当インスタンスを取得したあとは、インスタンス固有のsetRequestPropertyメソッドを使用します。
    void setDefaultUseCaches​(boolean defaultusecaches)
    useCachesフィールドのデフォルト値を、指定された値に設定します。
    static void setDefaultUseCaches​(String protocol, boolean defaultVal)
    指定されたプロトコルのuseCachesフィールドのデフォルト値を指定された値に設定します。
    void setDoInput​(boolean doinput)
    このURLConnectiondoInputフィールドの値を指定された値に設定します。
    void setDoOutput​(boolean dooutput)
    このURLConnectiondoOutputフィールドの値を指定された値に設定します。
    static void setFileNameMap​(FileNameMap map)
    FileNameMapを設定します。
    void setIfModifiedSince​(long ifmodifiedsince)
    このURLConnectionifModifiedSinceフィールドの値を指定された値に設定します。
    void setReadTimeout​(int timeout)
    読取りタイム・アウトを、指定されたミリ秒単位のタイム・アウトに設定します。
    void setRequestProperty​(String key, String value)
    一般要求プロパティを設定します。
    void setUseCaches​(boolean usecaches)
    このURLConnectionuseCachesフィールドの値を指定された値に設定します。
    String toString()
    このURL接続のString表現を返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • フィールド詳細

    • url

      protected URL url
      URLは、World Wide Web上にあるリモート・オブジェクトを表します。このリモート・オブジェクトに対して、接続を開きます。

      このフィールドの値にアクセスするには、getURLメソッドを使用します。

      この変数のデフォルト値は、URLConnectionコンストラクタのURL引数の値です。

      関連項目:
      getURL(), url
    • doInput

      protected boolean doInput
      この変数は、setDoInputメソッドによって設定されています。 その値は、getDoInputメソッドによって返されます。

      URL接続は、入力または出力、あるいはその両方に対して使用できます。 doInputフラグをtrueに設定した場合、それは、アプリケーションがURL接続からデータを読み取る予定であることを示します。

      このフィールドのデフォルト値はtrueです。

      関連項目:
      getDoInput(), setDoInput(boolean)
    • doOutput

      protected boolean doOutput
      この変数は、setDoOutputメソッドによって設定されています。 その値は、getDoOutputメソッドによって返されます。

      URL接続は、入力または出力、あるいはその両方に対して使用できます。 doOutputフラグをtrueに設定した場合、それは、アプリケーションがURL接続にデータを書き込む予定であることを示します。

      このフィールドのデフォルト値はfalseです。

      関連項目:
      getDoOutput(), setDoOutput(boolean)
    • allowUserInteraction

      protected boolean allowUserInteraction
      trueの場合、このURLは、ユーザーとの対話(認証ダイアログのポップアップなど)を許可することが意味をなすコンテキストで検査されています。 falseの場合、ユーザーとの対話処理は許可されていません。

      このフィールドの値に設定するには、setAllowUserInteractionメソッドを使用します。 その値は、getAllowUserInteractionメソッドによって返されます。 そのデフォルト値は、setDefaultAllowUserInteractionメソッドを最後に呼び出した時の引数の値になります。

      関連項目:
      getAllowUserInteraction(), setAllowUserInteraction(boolean), setDefaultAllowUserInteraction(boolean)
    • useCaches

      protected boolean useCaches
      trueの場合、このプロトコルは、可能な場合はいつでもキャッシュを使用することが許可されています。 falseの場合、プロトコルは常に、オブジェクトの新規のコピーを取得する必要があります。

      このフィールドは、setUseCachesメソッドによって設定されます。 その値は、getUseCachesメソッドによって返されます。

      このフィールドのデフォルト値は、setDefaultUseCachesメソッドを最後に呼び出したときに指定した値です。

      デフォルトの設定は、プロトコルごとにsetDefaultUseCaches(String,boolean)で上書きすることができます。

      関連項目:
      setUseCaches(boolean), getUseCaches(), setDefaultUseCaches(boolean)
    • ifModifiedSince

      protected long ifModifiedSince
      一部のプロトコルでは、特定の時間よりもあとにオブジェクトが更新されていない場合に、オブジェクトのフェッチを省略することができます。

      0以外の値は、1970年1月1日GMTから起算したミリ秒数を表します。 オブジェクトが取得されるのは、その時間よりも後にオブジェクトが変更された場合だけです。

      この変数は、setIfModifiedSinceメソッドによって設定されています。 その値は、getIfModifiedSinceメソッドによって返されます。

      このフィールドのデフォルト値は0 (常にオブジェクトをフェッチする)です。

      関連項目:
      getIfModifiedSince(), setIfModifiedSince(long)
    • connected

      protected boolean connected
      falseの場合、この接続オブジェクトは、指定されたURLへの通信リンクを作成していません。 trueの場合、通信リンクが確立されています。
  • コンストラクタの詳細

    • URLConnection

      protected URLConnection​(URL url)
      指定されたURLへのURL接続を構築します。 URLが参照するオブジェクトへの接続は、作成されません。
      パラメータ:
      url−指定されたURL。
  • メソッドの詳細

    • getFileNameMap

      public static FileNameMap getFileNameMap()
      データ・ファイルからファイル名マップ(mimetable)をロードします。 これはまず、「content.types.user.table」プロパティで定義されたユーザー指定表をロードしようとします。 それが失敗した場合、これはデフォルトの組込み表をロードしようとします。
      戻り値:
      FileNameMap
      導入されたバージョン:
      1.2
      関連項目:
      setFileNameMap(java.net.FileNameMap)
    • setFileNameMap

      public static void setFileNameMap​(FileNameMap map)
      FileNameMapを設定します。

      セキュリティ・マネージャが存在する場合、この操作が許可されるように、このメソッドは最初にセキュリティ・マネージャのcheckSetFactoryメソッドを呼び出します。 この結果、SecurityExceptionがスローされることがあります。

      パラメータ:
      map−設定するFileNameMap
      例外:
      SecurityException - セキュリティ・マネージャが存在し、そのcheckSetFactoryメソッドでこの操作が許可されていない場合。
      導入されたバージョン:
      1.2
      関連項目:
      SecurityManager.checkSetFactory(), getFileNameMap()
    • connect

      public abstract void connect() throws IOException
      このURLが参照するリソースへの通信リンクを確立します(通信リンクが確立されていない場合)。

      connectメソッドを呼び出したときに、接続がすでに確立されていれば(connectedフィールドの値がtrueであれば)、メソッド呼出しは無視されます。

      URLConnectionオブジェクトは2つの段階を経験します。それらはまず作成され、次に接続されます。 作成されてから接続されるまでの間は、doInputやuseCachesなど、さまざまなオプションを指定できます。 接続後にそれらを設定しようとすると、エラーが発生します。 getContentLengthなどの、接続されていることに依存する操作は、必要に応じて暗黙的に接続を実行します。

      例外:
      SocketTimeoutException−接続が確立される前にタイム・アウトが過ぎた場合
      IOException - 接続のオープン中に入出力エラーが発生した場合。
      関連項目:
      connected, getConnectTimeout(), setConnectTimeout(int)
    • setConnectTimeout

      public void setConnectTimeout​(int timeout)
      このURLConnectionが参照するリソースへの通信リンクのオープン時に、指定されたミリ秒単位のタイム・アウト値が使用されるように設定します。 接続が確立される前にタイム・アウトが過ぎた場合は、java.net.SocketTimeoutExceptionが発行されます。 タイム・アウト0は無限のタイム・アウトとして解釈されます。

      このメソッドの非標準実装のなかには、指定されたタイムアウトを無視するものもあります。 設定されている接続タイム・アウトを確認するには、getConnectTimeout()を呼び出してください。

      パラメータ:
      timeout−ミリ秒単位の接続タイム・アウト値を表すint
      例外:
      IllegalArgumentException - timeoutパラメータが負の場合
      導入されたバージョン:
      1.5
      関連項目:
      getConnectTimeout(), connect()
    • getConnectTimeout

      public int getConnectTimeout()
      接続タイム・アウトの設定を返します。

      このオプションが無効(タイム・アウトが無限)の場合は0を返します。

      戻り値:
      ミリ秒単位の接続タイム・アウト値を示すint
      導入されたバージョン:
      1.5
      関連項目:
      setConnectTimeout(int), connect()
    • setReadTimeout

      public void setReadTimeout​(int timeout)
      読取りタイム・アウトを、指定されたミリ秒単位のタイム・アウトに設定します。 0以外の値は、リソースへの接続が確立されている場合の、入力ストリームからの読取りタイム・アウトを指定します。 データが読取り可能になる前にタイム・アウトが過ぎた場合は、java.net.SocketTimeoutExceptionが発行されます。 タイム・アウト0は無限のタイム・アウトとして解釈されます。

      このメソッドの非標準実装のなかには、指定されたタイム・アウトを無視するものもあります。 設定されている読取りタイム・アウトを確認するには、getReadTimeout()を呼び出してください。

      パラメータ:
      timeout−使用すべきミリ秒単位のタイム・アウト値を指定するint
      例外:
      IllegalArgumentException - timeoutパラメータが負の場合
      導入されたバージョン:
      1.5
      関連項目:
      getReadTimeout(), InputStream.read()
    • getReadTimeout

      public int getReadTimeout()
      読取りタイム・アウトの設定を返します。このオプションが無効(タイム・アウトが無限)の場合は0を返します。
      戻り値:
      ミリ秒単位の読取りタイム・アウト値を示すint
      導入されたバージョン:
      1.5
      関連項目:
      setReadTimeout(int), InputStream.read()
    • getURL

      public URL getURL()
      このURLConnectionURLフィールドの値を返します。
      戻り値:
      このURLConnectionURLフィールドの値。
      関連項目:
      url
    • getContentLength

      public int getContentLength()
      content-lengthヘッダー・フィールドの値を返します。

      ノート: このメソッドよりgetContentLengthLong()を優先してください。これはlongを返すのでより移植性が高いからです。

      戻り値:
      この接続のURLによって参照されているリソースのコンテンツの長さ。コンテンツの長さが不明の場合や、コンテンツの長さがInteger.MAX_VALUEより長い場合は-1
    • getContentLengthLong

      public long getContentLengthLong()
      content-lengthヘッダー・フィールドの値をlong型として返します。
      戻り値:
      この接続のURLによって参照されているリソースのコンテンツの長さ。コンテンツの長さが不明の場合は-1
      導入されたバージョン:
      1.7
    • getContentType

      public String getContentType()
      content-typeヘッダー・フィールドの値を返します。
      戻り値:
      URLによって参照されているリソースのコンテンツの種類。不明の場合はnull
      関連項目:
      getHeaderField(java.lang.String)
    • getContentEncoding

      public String getContentEncoding()
      content-encodingヘッダー・フィールドの値を返します。
      戻り値:
      URLによって参照されているリソースのコンテンツのエンコーディング。不明の場合はnull
      関連項目:
      getHeaderField(java.lang.String)
    • getExpiration

      public long getExpiration()
      expiresヘッダー・フィールドの値を返します。
      戻り値:
      このURLが参照するリソースの有効期限日。不明の場合は0。 この値は、1970年1月1日GMTからのミリ秒数。
      関連項目:
      getHeaderField(java.lang.String)
    • getDate

      public long getDate()
      dateヘッダー・フィールドの値を返します。
      戻り値:
      URLが参照するリソースの送信日。不明の場合は0 返される値は、1970年1月1日GMTからのミリ秒数。
      関連項目:
      getHeaderField(java.lang.String)
    • getLastModified

      public long getLastModified()
      last-modifiedヘッダー・フィールドの値を返します。 結果は、1970年1月1日GMTからのミリ秒数です。
      戻り値:
      このURLConnectionが参照するリソースが最後に変更された日付。不明の場合は0。
      関連項目:
      getHeaderField(java.lang.String)
    • getHeaderField

      public String getHeaderField​(String name)
      指定されたヘッダー・フィールドの値を返します。

      同じヘッダーを別の値で複数回設定する可能性のある接続で呼び出される場合は、最後の値だけが返されます。

      パラメータ:
      name−ヘッダー・フィールドの名前。
      戻り値:
      指定されたヘッダー・フィールドの名前。指定された名前を持つフィールドがヘッダー内にない場合はnull
    • getHeaderFields

      public Map<String,​List<String>> getHeaderFields()
      ヘッダー・フィールドの変更不可能なマップを返します。 マップのキーは、応答ヘッダーのフィールド名を表すStringです。 マップの各値は変更不可能なStringのリストであり、対応するフィールドの値を表します。
      戻り値:
      ヘッダー・フィールドのマップ
      導入されたバージョン:
      1.4
    • getHeaderFieldInt

      public int getHeaderFieldInt​(String name, int Default)
      指定されたフィールドを数値として構文解析した値を返します。

      この形式のgetHeaderFieldが存在しているのは、一部の接続タイプ(http-ngなど)が事前に構文解析されたヘッダーを持つからです。 そうした接続タイプのクラスは、このメソッドをオーバーライドすることで構文解析を回避することができます。

      パラメータ:
      name - ヘッダー・フィールドの名前。
      Default - デフォルト値。
      戻り値:
      指定されたフィールドを整数として構文解析した値。 フィールドが見つからないか形式が不正である場合には、Defaultの値が返されます。
    • getHeaderFieldLong

      public long getHeaderFieldLong​(String name, long Default)
      指定されたフィールドを数値として構文解析した値を返します。

      この形式のgetHeaderFieldが存在しているのは、一部の接続タイプ(http-ngなど)が事前に構文解析されたヘッダーを持つからです。 そうした接続タイプのクラスは、このメソッドをオーバーライドすることで構文解析を回避することができます。

      パラメータ:
      name - ヘッダー・フィールドの名前。
      Default - デフォルト値。
      戻り値:
      指定されたフィールドをlong値として構文解析した値。 フィールドが見つからないか形式が不正である場合には、Defaultの値が返されます。
      導入されたバージョン:
      1.7
    • getHeaderFieldDate

      public long getHeaderFieldDate​(String name, long Default)
      指定されたフィールドを日付として構文解析した値を返します。 結果は、指定されたフィールドが表す、1970年1月1日GMTからのミリ秒数です。

      この形式のgetHeaderFieldが存在しているのは、一部の接続タイプ(http-ngなど)が事前に構文解析されたヘッダーを持つからです。 そうした接続タイプのクラスは、このメソッドをオーバーライドすることで構文解析を回避することができます。

      パラメータ:
      name - ヘッダー・フィールドの名前。
      Default - デフォルト値。
      戻り値:
      フィールドの値を日付として構文解析したもの。 フィールドが見つからないか形式が不正である場合には、Default引数の値が返されます。
    • getHeaderFieldKey

      public String getHeaderFieldKey​(int n)
      n番目のヘッダー・フィールドのキーを返します。 一部の実装では、0thヘッダー・フィールドが特別として扱われる場合があります。その場合、getHeaderField(0)は値を返しますが、getHeaderFieldKey(0)nullを返します。 n > 0 の場合、n+1フィールドより少ない場合はnullを返します。
      パラメータ:
      n - インデックス。ここでn>=0です
      戻り値:
      nthヘッダー・フィールドのキー。n > 0の場合、n+1フィールドより少ない場合はnull
    • getHeaderField

      public String getHeaderField​(int n)
      n番目のヘッダー・フィールドの値を返します。 フィールド数がn+1個よりも少ない場合はnullを返します。

      このメソッドとgetHeaderFieldKeyメソッドを組み合わせて使用すると、メッセージ内のすべてのヘッダーを反復できます。

      パラメータ:
      n - インデックス。ここでn>=0です
      戻り値:
      n番目のヘッダー・フィールドの値。フィールド数がn+1より少ない場合はnull
      関連項目:
      getHeaderFieldKey(int)
    • getContent

      public Object getContent() throws IOException
      このURL接続のコンテンツを取得します。

      このメソッドでは最初にgetContentTypeメソッドを呼び出し、オブジェクトの情報の種類を判別します。 アプリケーションが特定のコンテンツ型を初めて見た場合は、そのコンテンツ型のコンテンツ・ハンドラが作成されます。

      次のように行います。

      1. アプリケーションでsetContentHandlerFactoryメソッドを使用しContentHandlerファクトリのインスタンスがセット・アップされている場合は、そのインスタンスのcreateContentHandlerメソッドを呼び出し、内容の種類を引数として渡します。その結果、その内容の種類のContentHandlerが返されます。
      2. ContentHandlerFactoryがまだ設定されていない場合、またはcreateContentHandlerメソッドがnullを返した場合は、ServiceLoaderメカニズムを使用して、システム・クラス・ローダーを使用してContentHandlerFactory実装を特定します。 ファクトリが置かれている順序は実装固有であり、実装はそのファクトリを自由にキャッシュできます。 createContentHandlerからスローされたServiceConfigurationErrorErrorまたはRuntimeExceptionが発生した場合は、呼び出しスレッドに伝播されます。 ファクトリが非nullか、すべてのファクトリが使い果たされるまで、各ファクトリの createContentHandlerメソッドがインスタンス化されると、コンテンツ型とともに呼び出されます。
      3. それに失敗した場合、このメソッドはContentHandlerで定義されたコンテンツ・ハンドラ・クラスをロードしようとします。 クラスが存在しない場合、または ContentHandlerのサブクラスでない場合は、UnknownServiceExceptionがスローされます。

      戻り値:
      取得されたオブジェクト。 返されたオブジェクトの種類を判定するには、instanceof演算子を使用することをお薦めします。
      例外:
      IOException - コンテンツの取得中に入出力エラーが発生した場合。
      UnknownServiceException - プロトコルがそのコンテンツ・タイプをサポートしていない場合。
      関連項目:
      ContentHandlerFactory.createContentHandler(java.lang.String), getContentType(), setContentHandlerFactory(java.net.ContentHandlerFactory)
    • getContent

      public Object getContent​(Class<?>[] classes) throws IOException
      このURL接続のコンテンツを取得します。
      パラメータ:
      classes−要求された型を示すClass配列
      戻り値:
      クラスの配列で指定された型が最初に一致した、取得したオブジェクト。要求された型がサポートされていない場合はnull。 返されたオブジェクトの種類を判定するには、instanceof演算子を使用することをお薦めします。
      例外:
      IOException - コンテンツの取得中に入出力エラーが発生した場合。
      UnknownServiceException - プロトコルがそのコンテンツ・タイプをサポートしていない場合。
      導入されたバージョン:
      1.3
      関連項目:
      getContent(), ContentHandlerFactory.createContentHandler(java.lang.String), getContent(java.lang.Class[]), setContentHandlerFactory(java.net.ContentHandlerFactory)
    • getPermission

      public Permission getPermission() throws IOException
      このオブジェクトが表す接続のために必要なアクセス権を表すPermissionオブジェクトを返します。 接続時にアクセス権がまったく必要とされない場合、このメソッドはnullを返します。 デフォルトでは、このメソッドはjava.security.AllPermissionを返します。 サブクラスはこのメソッドをオーバーライドし、URLへの接続に必要なアクセス権を最もよく表すアクセス権を返します。 たとえば、file: URLを表すURLConnectionjava.io.FilePermissionオブジェクトを返します。

      返されるアクセス権は、接続の状態に依存する可能性があります。 たとえば、接続前のアクセス権は、接続後のアクセス権とは異なる可能性があります。 たとえば、foo.comというHTTPサーバーで、接続を別のホストbar.comにリダイレクトしているとします。 接続する前にconnectionによって返されるアクセス権は、foo.comへの接続に必要なアクセス権です。一方、接続の後で返されるアクセス権は、bar.comへのアクセス権になります。

      アクセス権の一般的な使用目的は2つあります。URLConnection経由で取得されたオブジェクトのキャッシュを保護することと、受信者が特定のURLについて知る権利をチェックすることです。 最初の場合、アクセス権はオブジェクトを取得したあとで取得されます。 たとえば、HTTP接続の場合、これは、データの最終的な取得元となったホストに接続するためのアクセス権を表します。 2番目の場合、アクセス権は接続のに取得およびテストされます。

      戻り値:
      このURLConnectionが表す接続のために必要なアクセス権を表すPermissionオブジェクト。
      例外:
      IOException−アクセス権の処理のためにネットワークまたはファイルの入出力が必要で、その処理中に例外が発生した場合。
    • getInputStream

      public InputStream getInputStream() throws IOException
      この接続からの入力を受け取る入力ストリームを返します。 返された入力ストリームからの読取り時に、データが読取り可能になる前に読取りタイム・アウトが過ぎた場合、SocketTimeoutExceptionがスローされます。
      戻り値:
      この接続からの入力を受け取る入力ストリーム。
      例外:
      IOException−入力ストリームの作成中に入出力エラーが発生した場合。
      UnknownServiceException−プロトコルが入力をサポートしていない場合。
      関連項目:
      setReadTimeout(int), getReadTimeout()
    • getOutputStream

      public OutputStream getOutputStream() throws IOException
      この接続に書込みを行う出力ストリームを返します。
      戻り値:
      この接続に書込みを行う出力ストリーム。
      例外:
      IOException−出力ストリームの作成中に入出力エラーが発生した場合。
      UnknownServiceException−プロトコルが出力をサポートしていない場合。
    • toString

      public String toString()
      このURL接続のString表現を返します。
      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      このURLConnectionを表す文字列表現。
    • setDoInput

      public void setDoInput​(boolean doinput)
      このURLConnectiondoInputフィールドの値を指定された値に設定します。

      URL接続は、入力または出力、あるいはその両方に対して使用できます。 入力用にURL接続を使用する場合はdoInputフラグをtrueに設定し、入力用にURL接続を使用しない場合はfalseに設定します。 デフォルトは、trueです。

      パラメータ:
      doinput - 新しい値。
      例外:
      IllegalStateException - すでに接続されている場合
      関連項目:
      doInput, getDoInput()
    • getDoInput

      public boolean getDoInput()
      このURLConnectiondoInputフラグの値を返します。
      戻り値:
      このURLConnectiondoInputフラグの値。
      関連項目:
      setDoInput(boolean)
    • setDoOutput

      public void setDoOutput​(boolean dooutput)
      このURLConnectiondoOutputフィールドの値を指定された値に設定します。

      URL接続は、入力または出力、あるいはその両方に対して使用できます。 出力にURL接続を使用する場合はdoOutputフラグをtrueに設定し、出力しない場合はfalseに設定します。 デフォルトはfalseです。

      パラメータ:
      dooutput - 新しい値。
      例外:
      IllegalStateException - すでに接続されている場合
      関連項目:
      getDoOutput()
    • getDoOutput

      public boolean getDoOutput()
      このURLConnectiondoOutputフラグの値を返します。
      戻り値:
      このURLConnectiondoOutputフラグの値。
      関連項目:
      setDoOutput(boolean)
    • setAllowUserInteraction

      public void setAllowUserInteraction​(boolean allowuserinteraction)
      このURLConnectionallowUserInteractionフィールドの値を設定します。
      パラメータ:
      allowuserinteraction - 新しい値。
      例外:
      IllegalStateException - すでに接続されている場合
      関連項目:
      getAllowUserInteraction()
    • getAllowUserInteraction

      public boolean getAllowUserInteraction()
      このオブジェクトのallowUserInteractionフィールドの値を返します。
      戻り値:
      このオブジェクトのallowUserInteractionフィールドの値。
      関連項目:
      setAllowUserInteraction(boolean)
    • setDefaultAllowUserInteraction

      public static void setDefaultAllowUserInteraction​(boolean defaultallowuserinteraction)
      将来に作成されるすべてのURLConnectionオブジェクトのallowUserInteractionフィールドについて、デフォルト値を指定された値に設定します。
      パラメータ:
      defaultallowuserinteraction - 新しい値。
      関連項目:
      getDefaultAllowUserInteraction()
    • getDefaultAllowUserInteraction

      public static boolean getDefaultAllowUserInteraction()
      allowUserInteractionフィールドのデフォルト値を返します。

      このデフォルトは"sticky"であり、すべてのURLConnectionの静的状態の一部です。 このフラグは、次回以降に作成されるすべてのURLConnectionに対して適用されます。

      戻り値:
      allowUserInteractionフィールドのデフォルト値。
      関連項目:
      setDefaultAllowUserInteraction(boolean)
    • setUseCaches

      public void setUseCaches​(boolean usecaches)
      このURLConnectionuseCachesフィールドの値を指定された値に設定します。

      プロトコルによってはドキュメントのキャッシングを行う場合があります。 場合によってはキャッシュを無視して情報を転送する(ブラウザの「再読込」ボタンなど)ことが重要なこともあります。 接続のuseCachesフラグがtrueの場合、接続は、可能な場合はいつでもキャッシュを使用できます。 falseの場合、キャッシュは無視されます。 デフォルト値はdefaultUseCachesから得られます。デフォルトはtrueです。 デフォルト値は、setDefaultUseCaches(String,boolean)を使用してプロトコルごとに設定することもできます。

      パラメータ:
      usecaches−キャッシュへの書込みが可能かどうかを示すboolean値。
      例外:
      IllegalStateException - すでに接続されている場合
      関連項目:
      getUseCaches()
    • getUseCaches

      public boolean getUseCaches()
      このURLConnectionuseCachesフィールドの値を返します。
      戻り値:
      このURLConnectionuseCachesフィールドの値。
      関連項目:
      setUseCaches(boolean)
    • setIfModifiedSince

      public void setIfModifiedSince​(long ifmodifiedsince)
      このURLConnectionifModifiedSinceフィールドの値を指定された値に設定します。
      パラメータ:
      ifmodifiedsince - 新しい値。
      例外:
      IllegalStateException - すでに接続されている場合
      関連項目:
      getIfModifiedSince()
    • getIfModifiedSince

      public long getIfModifiedSince()
      このオブジェクトのifModifiedSinceフィールドの値を返します。
      戻り値:
      このオブジェクトのifModifiedSinceフィールドの値。
      関連項目:
      setIfModifiedSince(long)
    • getDefaultUseCaches

      public boolean getDefaultUseCaches()
      URLConnectionuseCachesフラグのデフォルト値を返します。

      このデフォルトは"sticky"であり、すべてのURLConnectionの静的状態の一部です。 このフラグは、次回以降に作成されるすべてのURLConnectionに対して適用されます。 このデフォルト値は、プロトコルごとにsetDefaultUseCaches(String,boolean)を使用してオーバーライドすることができます

      戻り値:
      URLConnectionuseCachesフラグのデフォルト値。
      関連項目:
      setDefaultUseCaches(boolean)
    • setDefaultUseCaches

      public void setDefaultUseCaches​(boolean defaultusecaches)
      useCachesフィールドのデフォルト値を、指定された値に設定します。 このデフォルト値は、プロトコルごとにsetDefaultUseCaches(String,boolean)を使用してオーバーライドすることができます
      パラメータ:
      defaultusecaches - 新しい値。
      関連項目:
      getDefaultUseCaches()
    • setDefaultUseCaches

      public static void setDefaultUseCaches​(String protocol, boolean defaultVal)
      指定されたプロトコルのuseCachesフィールドのデフォルト値を指定された値に設定します。 この値は、指定されたプロトコルのsetDefaultUseCaches(boolean)によって設定されたデフォルト設定よりも優先されます。 このメソッドを連続して呼び出すと、設定が変更され、そのプロトコルの今後のすべての接続のデフォルト値に影響します。 プロトコル名は大文字と小文字を区別しません。
      パラメータ:
      protocol - デフォルトのプロトコルを設定
      defaultVal - 指定されたプロトコルに対してデフォルトでキャッシングが有効になっているかどうか
      導入されたバージョン:
      9
    • getDefaultUseCaches

      public static boolean getDefaultUseCaches​(String protocol)
      指定されたプロトコルのuseCachesフラグのデフォルト値を返します。 setDefaultUseCaches(String,boolean)が指定されたプロトコルに対して呼び出された場合、その値が返されます。 それ以外の場合は、setDefaultUseCaches(boolean)が呼び出された場合は、その値が返されます。 いずれのメソッドも呼び出されなかった場合、戻り値はtrueです。 プロトコル名は大文字と小文字を区別しません。
      パラメータ:
      protocol - defaultUseCaches設定が必要なプロトコル
      戻り値:
      指定されたプロトコルのuseCachesフラグのデフォルト値。
      導入されたバージョン:
      9
    • setRequestProperty

      public void setRequestProperty​(String key, String value)
      一般要求プロパティを設定します。 このキーを持つプロパティがすでに存在する場合は、その値を新しい値で上書きします。

      ノート: 複数のプロパティを1つのプロパティに付加できるようにする、カンマで区切られたリスト構文を使用するために、HTTPは、同じキーで複数のインスタンスを正当に持てる要求プロパティをすべて必要とします。

      パラメータ:
      key - 要求を識別するキーワード(「Accept」など)。
      value - キーワードに関連した値。
      例外:
      IllegalStateException - すでに接続されている場合
      NullPointerException - キーがnullの場合
      関連項目:
      getRequestProperty(java.lang.String)
    • addRequestProperty

      public void addRequestProperty​(String key, String value)
      キーと値のペアで指定された一般要求プロパティを追加します。 このメソッドは、同じキーに関連付けられている既存の値を上書きしません。
      パラメータ:
      key - 要求を識別するキーワード(「Accept」など)。
      value - キーワードに関連した値。
      例外:
      IllegalStateException - すでに接続されている場合
      NullPointerException - キーがnullの場合
      導入されたバージョン:
      1.4
      関連項目:
      getRequestProperties()
    • getRequestProperty

      public String getRequestProperty​(String key)
      この接続の指定された一般要求プロパティの値を返します。
      パラメータ:
      key - 要求を識別するキーワード(「Accept」など)。
      戻り値:
      この接続の指定された一般要求プロパティの値。 キーがnullの場合はnullが返される。
      例外:
      IllegalStateException - すでに接続されている場合
      関連項目:
      setRequestProperty(java.lang.String, java.lang.String)
    • getRequestProperties

      public Map<String,​List<String>> getRequestProperties()
      この接続の一般要求プロパティの変更不可能なマップを返します。 マップのキーは、要求ヘッダーのフィールド名を表すStringです。 マップの各値は変更不可能なStringのリストであり、対応するフィールドの値を表します。
      戻り値:
      この接続の一般要求プロパティのマップ。
      例外:
      IllegalStateException - すでに接続されている場合
      導入されたバージョン:
      1.4
    • setDefaultRequestProperty

      @Deprecatedpublic static void setDefaultRequestProperty​(String key, String value)
      非推奨。
      URLConnectionの該当インスタンスを取得したあとは、インスタンス固有のsetRequestPropertyメソッドを使用します。 このメソッドを呼び出しても、何の効果もありません。
      一般要求プロパティのデフォルト値を設定します。 URLConnectionはその作成時に、これらのプロパティを使って初期化されます。
      パラメータ:
      key - 要求を識別するキーワード(「Accept」など)。
      value−キーに関連した値。
      関連項目:
      setRequestProperty(java.lang.String,java.lang.String), getDefaultRequestProperty(java.lang.String)
    • getDefaultRequestProperty

      @Deprecatedpublic static String getDefaultRequestProperty​(String key)
      非推奨。
      URLConnectionの該当インスタンスを取得したあとは、インスタンス固有のgetRequestPropertyメソッドを使用します。
      デフォルト要求プロパティの値を返します。 デフォルトの要求プロパティはすべての接続に設定されています。
      パラメータ:
      key - 要求を識別するキーワード(「Accept」など)。
      戻り値:
      指定されたキーに対するデフォルト要求プロパティの値。
      関連項目:
      getRequestProperty(java.lang.String), setDefaultRequestProperty(java.lang.String, java.lang.String)
    • setContentHandlerFactory

      public static void setContentHandlerFactory​(ContentHandlerFactory fac)
      アプリケーションのContentHandlerFactoryを設定します。 アプリケーションでは最大で1回呼び出すことができます。

      コンテンツの種類を基にContentHandlerを構築する際にはContentHandlerFactoryが使用されます。

      セキュリティ・マネージャが存在する場合、この操作が許可されるように、このメソッドは最初にセキュリティ・マネージャのcheckSetFactoryメソッドを呼び出します。 この結果、SecurityExceptionがスローされることがあります。

      パラメータ:
      fac - 目的のファクトリ。
      例外:
      Error - ファクトリがすでに定義されている場合。
      SecurityException - セキュリティ・マネージャが存在し、そのcheckSetFactoryメソッドでこの操作が許可されていない場合。
      関連項目:
      ContentHandlerFactory, getContent(), SecurityManager.checkSetFactory()
    • guessContentTypeFromName

      public static String guessContentTypeFromName​(String fname)
      URLの指定された「ファイル」コンポーネントを基に、オブジェクトのコンテンツ型を推測します。 これは、getContentTypeメソッドをオーバーライドするサブクラスが使用可能な簡易メソッドです。
      パラメータ:
      fname−ファイル名。
      戻り値:
      ファイル名を基に推測したオブジェクトのコンテンツ型。
      関連項目:
      getContentType()
    • guessContentTypeFromStream

      public static String guessContentTypeFromStream​(InputStream is) throws IOException
      入力ストリームの先頭の文字を基に、入力ストリームの種類の決定を試みます。 getContentTypeメソッドをオーバーライドするサブクラスが、このメソッドを使用できます。

      このルーチンが必要なくなるのが理想的です。 しかし、コンテンツ型として不正な値を返すhttpサーバーは数多くあります。さらに、標準的ではない拡張子もたくさんあります。 このため、httpサーバーが返すコンテンツ型をうのみにするよりも、データを基にコンテンツ型を直接推測した方が正確な場合がよくあります。

      パラメータ:
      is−markをサポートする入力ストリーム。
      戻り値:
      推測したコンテンツ型。推測できない場合はnull
      例外:
      IOException−入力ストリームの読取り中に入出力エラーが発生した場合。
      関連項目:
      InputStream.mark(int), InputStream.markSupported(), getContentType()