全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.net.URLConnection

java.lang.Object
   |
   +----java.net.URLConnection

public abstract class URLConnection
extends Object
抽象クラス URLConnection は、アプリケーションと URL との間の通信リンクを表すすべてのクラスのスーパークラスです。このクラスのインスタンスを使用して、URL で参照するリソースの読み込みと書き込みの両方を行うことができます。一般に、URL への接続を作成する際には複数の手順が必要となります。

openConnection() connect()
リモートリソースへの接続に影響するパラメータを操作する リソース、クエリーヘッダーフィールド、情報の内容と対話処理を行う
---------------------------->
時間
  1. URL に対して openConnection メソッドを呼び出すことによって、接続オブジェクトを作成する
  2. セットアップパラメータと一般要求プロパティを操作する
  3. connect メソッドを使用してリモートオブジェクトへの実際の接続を確立する
  4. リモートオブジェクトが使用可能になる。リモートオブジェクトのヘッダーフィールドと内容にアクセスできるようになる

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

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

AllowUserInteraction パラメータと UseCaches パラメータのデフォルト値を設定するには、setDefaultAllowUserInteractionsetDefaultUseCaches を使用します。一般要求プロパティのデフォルト値を設定するには、setDefaultRequestProperty メソッドを使用します。

上記の両方の set メソッドには対応する get メソッドがあり、パラメータや一般要求プロパティの値を取得することができます。使用できるパラメータと一般要求プロパティは、プロトコルによって異なります。

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

一部のヘッダーフィールドには頻繁にアクセスします。次のメソッドは、これらのフィールドにアクセスする際に便利なメソッドです。

getContent メソッドは、リモートオブジェクトの種類を判別する際に getContentType メソッドを使用します。サブクラスでは、getContentType メソッドをオーバーライドするときにこのメソッドを使用すると便利です。

一般に、接続前のパラメータと一般要求プロパティは、無視することができます。接続前のパラメータと一般要求プロパティのデフォルト値は読み取りが可能です。このインタフェースの大部分のクライアントで、よく使用するメソッドは getInputStream メソッドと getObject メソッドです。これらは URL クラスの便利なメソッドによってミラーされます。

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

 http://www.w3.org/hypertext/WWW/Protocols/HTTP1.0/draft-ietf-http-spec.html
 

参照:
openConnection, connect, getContent, getContentEncoding, getContentLength, getContentType, getDate, getExpiration, getHeaderField, getHeaderField, getInputStream, getLastModified, getOutputStream, setAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDoInput, setDoOutput, setIfModifiedSince, setRequestProperty, setUseCaches

Variable Index

 o allowUserInteraction
true の場合、この URL はユーザーとの対話処理 (認証ダイアログのポップアップなど) の実行が可能なコンテキストで検査されている。
 o connected
false の場合、この接続オブジェクトは指定の URL への通信リンクを作成していない。
 o doInput
この変数を設定するには setDoInput メソッドを使用する。
 o doOutput
この変数を設定するには setDoOutput メソッドを使用する。
 o fileNameMap
 o ifModifiedSince
一部のプロトコルでは、特定の時刻よりもあとにオブジェクトが更新されていない場合、オブジェクトの取り寄せを省略することができる。
 o url
URL は、この接続を確立した World Wide Web 上のリモートオブジェクトを表す。
 o useCaches
true の場合、そのプロトコルでは可能なときにはいつでもキャッシュ内のデータを使用することができる。

Constructor Index

 o URLConnection(URL)
指定の URL への URL 接続を確立する。

Method Index

 o connect()
この URL が参照するリソースへの通信リンクを確立する (この接続がまだ確立されていない場合)。
 o getAllowUserInteraction()
このオブジェクトの allowUserInteraction フィールドの値を返す。
 o getContent()
URL 接続の内容を取り寄せる。
 o getContentEncoding()
content-encoding ヘッダーフィールドの値を返す。
 o getContentLength()
content-length ヘッダーフィールドの値を返す。
 o getContentType()
content-type ヘッダーフィールドの値を返す。
 o getDate()
date ヘッダーフィールドの値を返す。
 o getDefaultAllowUserInteraction()
allowUserInteraction フィールドのデフォルト値を返す。
 o getDefaultRequestProperty(String)
デフォルトの要求プロパティの値を返す。
 o getDefaultUseCaches()
URLConnectionuseCaches フラグのデフォルト値を返す。
 o getDoInput()
この URLConnectiondoInput フラグの値を返す。
 o getDoOutput()
この URLConnectiondoOutput フラグの値を返す。
 o getExpiration()
expires ヘッダーフィールドの値を返す。
 o getHeaderField(int)
n 番目のヘッダーフィールドの値を返す。
 o getHeaderField(String)
指定したヘッダーフィールドの名前を返す。
 o getHeaderFieldDate(String, long)
指定したフィールドを日付として解析した値を返す。
 o getHeaderFieldInt(String, int)
指定したフィールドを数値として解析した値を返す。
 o getHeaderFieldKey(int)
n 番目のヘッダーフィールドのキーを返す。
 o getIfModifiedSince()
このオブジェクトの ifModifiedSince フィールドの値を返す。
 o getInputStream()
この接続からの入力を読み取る入力ストリームを返す。
 o getLastModified()
last-modified ヘッダーフィールドの値を返す。
 o getOutputStream()
この接続への書き込みを行う出力ストリームを返す。
 o getRequestProperty(String)
この接続の指定した一般要求プロパティの値を返す。
 o getURL()
この URLConnectionURL フィールドの値を返す。
 o getUseCaches()
この URLConnectionuseCaches フィールドの値を返す。
 o guessContentTypeFromName(String)
指定した URL の「file」コンポーネントをもとに、オブジェクトの内容の種類を判別する。
 o guessContentTypeFromStream(InputStream)
入力ストリームの先頭の文字をもとに、入力ストリームの種類を判別する。
 o setAllowUserInteraction(boolean)
この URLConnectionallowUserInteraction フィールドの値を設定する。
 o setContentHandlerFactory(ContentHandlerFactory)
アプリケーションの ContentHandlerFactory を設定する。
 o setDefaultAllowUserInteraction(boolean)
これ以降のすべての URLConnection オブジェクトの allowUserInteraction フィールドのデフォルト値を指定した値に設定する。
 o setDefaultRequestProperty(String, String)
一般要求プロパティのデフォルト値を設定する。
 o setDefaultUseCaches(boolean)
useCaches フィールドの設定値を指定した値に設定する。
 o setDoInput(boolean)
この URLConnectiondoInput フィールド値を指定した値に設定する。
 o setDoOutput(boolean)
この URLConnectiondoOutput フィールド値を指定した値に設定する。
 o setIfModifiedSince(long)
この URLConnectionifModifiedSince フィールド値を指定した値に設定する。
 o setRequestProperty(String, String)
一般要求プロパティを設定する。
 o setUseCaches(boolean)
この URLConnectionuseCaches フィールド値を指定した値に設定する。
 o toString()
URL 接続の String 表現を返す。

Variables

 o url
  protected URL url
URL は、World Wide Web 上にある接続先のリモートオブジェクトを表します。

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

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

参照:
getURL, url
 o doInput
  protected boolean doInput
この変数を設定するには setDoInput メソッドを使用します。この変数の値を取得するには getDoInput メソッドを使用します。

URL 接続を使用して、入力と出力を行うことができます。アプリケーションで URL 接続からデータの読み込みを行う際には、doInput フラグを true に設定します。

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

参照:
getDoInput, setDoInput
 o doOutput
  protected boolean doOutput
この変数を設定するには setDoOutput メソッドを使用します。この変数値を取得するには getDoInput メソッドを使用します。

URL 接続を使用して、入力や出力を行うことができます。アプリケーションで URL 接続に書き込みを行う場合は、doOutput フラグを true に設定します。

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

参照:
getDoOutput, setDoOutput
 o allowUserInteraction
  protected boolean allowUserInteraction
true の場合、この URL はユーザーとの対話処理 (認証ダイアログのポップアップなど) の実行が可能なコンテキストで検査されています。false の場合、ユーザーとの対話処理は許可されていません。

このフィールドの値を設定するには setAllowUserInteraction メソッドを使用します。 このフィールドの値を取得するには getAllowUserInteraction メソッドを使用します。 このフィールドのデフォルト値は、setDefaultAllowUserInteraction メソッドを最後に呼び出したとき、引数に指定した値です。

参照:
getAllowUserInteraction, setAllowUserInteraction, setDefaultAllowUserInteraction
 o useCaches
  protected boolean useCaches
trueの場合、プロトコルは可能なときにキャッシュ内のデータを使用することができます。false の場合、プロトコルは常にオブジェクトの新しいコピーを取得する必要があります。

このフィールド値を設定するには setUseCaches メソッドを使用します。このフィールド値を取得するには getUseCaches メソッドを使用します。

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

参照:
setUseCaches, getUseCaches, setDefaultUseCaches
 o ifModifiedSince
  protected long ifModifiedSince
一部のプロトコルでは、特定の時刻よりもあとにオブジェクトが更新されていない場合に、オブジェクトの取り寄せを省略することができます。

ゼロ以外の値は、1970 年 1 月 1 日 GMT から数えた秒数を表します。この値よりもあとにオブジェクトが変更されている場合にだけ、オブジェクトが取り寄せられます。

この変数を設定するには setIfModifiedSince メソッドを使用します。この変数値を取得するには getIfModifiedSince メソッドを使用します。

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

参照:
getIfModifiedSince, setIfModifiedSince
 o fileNameMap
  public static FileNameMap fileNameMap
 o connected
  protected boolean connected
false の場合、この接続オブジェクトは指定した URL への通信リンクを作成していません。true の場合は、通信リンクが確立されています。

Constructors

 o URLConnection
  protected URLConnection(URL url)
指定した URL への URL 接続を作成します。URL が参照するオブジェクトへの接続は作成されません。

パラメータ:
url - 指定の URL

Methods

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

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

URLConnection オブジェクトは 2 つの段階を踏みます。まずオブジェクトが作成され、そのあと接続が確立されます。作成後、接続を確立する前に、さまざまなオプション (doInput や UseCaches など) を指定することができます。接続後にこれらのオプションを設定しようとするとエラーになります。接続に依存する操作 (getContentLength など) を行うと、必要に応じて接続が暗黙的に確立されます。

例外 : IOException
接続の確立中に I/O エラーが発生した
参照:
connected
 o getURL
  public URL getURL()
この URLConnectionURL フィールド値を返します。

返り値:
この URLConnectionURL フィールド値
参照:
url
 o getContentLength
  public int getContentLength()
content-length ヘッダーフィールドの値を返します。

返り値:
この接続の URL が参照する情報のサイズ。サイズが不明の場合は-1
 o getContentType
  public String getContentType()
content-type ヘッダーフィールドの値を返します。

返り値:
URL が参照するリソースの情報の種類。不明の場合は null
参照:
getHeaderField
 o getContentEncoding
  public String getContentEncoding()
content-encoding ヘッダーフィールドの値を返します。

返り値:
URL が参照するリソースの情報のコード化方式。不明の場合は null
参照:
getHeaderField
 o getExpiration
  public long getExpiration()
expires ヘッダーフィールドの値を返します。

返り値:
この URL が参照するリソースの有効期限。不明の場合は 0。値は 1970 年 1 月 1 日 GMT から数えた秒数として返される
参照:
getHeaderField
 o getDate
  public long getDate()
date ヘッダーフィールドの値を返します。

返り値:
URL が参照するリソースの送信日。不明の場合は 0 。値は 1970 年 1 月 1 日 GMT から数えた秒数として返される
参照:
getHeaderField
 o getLastModified
  public long getLastModified()
last-modified ヘッダーフィールドの値を返します。値は 1970 年 1 月 1 日 GMT から数えた秒数として返されます。

返り値:
この URLConnection が参照するリソースが変更されら日付。不明の場合は 0
参照:
getHeaderField
 o getHeaderField
  public String getHeaderField(String name)
指定したヘッダーフィールドの値を返します。

パラメータ:
name - ヘッダーフィールドの名前
返り値:
指定したヘッダーフィールドの名前。指定した名前をもつフィールドがヘッダー内にない場合は null
 o getHeaderFieldInt
  public int getHeaderFieldInt(String name,
                               int Default)
指定したフィールドを数値として解析した値を返します。

一部の種類の接続 (http-ng など) は事前に解析してあるヘッダーをもつので、この形式の getHeaderField が存在しています。そのような種類の接続クラスでは、このメソッドをオーバーライドして解析を回避することができます。

パラメータ:
name - ヘッダーフィールドの名前
Default - デフォルト値
返り値:
指定したフィールドの値を整数として解析した値。フィールドがない、または形式が不正の場合には Default の値
 o getHeaderFieldDate
  public long getHeaderFieldDate(String name,
                                 long Default)
指定したフィールドを日付として解析した値を返します。指定したフィールドが表す 1970 年 1 月 1 日 GMT から数えた秒数が返されます。

一部の種類の接続 (http-ng など) では事前に解析してあるヘッダーをもつので、この形式の getHeaderField が存在しています。そのような種類の接続クラスでは、このメソッドをオーバーライドして解析を回避することができます。

パラメータ:
name -ヘッダーフィールドの名前
Default - デフォルト値
返り値:
日付として解析したフィールド値。フィールドの形式が不正な場合は Default 引数
 o getHeaderFieldKey
  public String getHeaderFieldKey(int n)
n 番目のヘッダーフィールドのキーを返します。

パラメータ:
n - インデックス
返り値:
n 番目のヘッダーフィールドのキー。フィールドの数が n 個よりも少ない場合は null
 o getHeaderField
  public String getHeaderField(int n)
n 番目のヘッダーフィールドの値を返します。フィールドの数が n 個よりも少ない場合は null を返します。

このメソッドと getHeaderFieldKey メソッドを組み合わせて使用すると、メッセージ内のすべてのヘッダーを繰り返し処理することができます。

パラメータ:
n - インデックス
返り値:
n 番目のヘッダーフィールドの値
参照:
getHeaderFieldKey
 o getContent
  public Object getContent() throws IOException
この URL 接続の内容を取り寄せます。

このメソッドでは最初に getContentType メソッドを呼び出し、オブジェクトの情報の種類を判別します。アプリケーションでその種類の内容を見るのがはじめての場合は、その種類の情報ヘッダーが作成されます。

  1. アプリケーションで setContentHandlerFactory メソッドを使用し ContentHandler ファクトリのインスタンスがセットアップされている場合は、そのインスタンスの createContentHandler メソッドを呼び出し、内容の種類を引数として渡す。その結果、その内容の種類の ContentHandler が返される。
  2. ContentHandler ファクトリがセットアップされていない場合、またはファクトリの createContentHandler メソッドが null を返す場合、アプリケーションは次の名前のクラスをロードする。
             sun.net.www.content.<contentType>
         
    <contentType> は、内容の種類を表わす文字列のスラッシュ文字をすべて ピリオド (「.」) に置換し、アルファベット以外のすべての文字を下線文字「_」に置換することによって作成される。アルファベット文字とは、26 個の大文字の ASCII 文字 (「A」から「Z」まで)、26 子の小文字の ASCII 文字 (「a」から「z」まで、および 10 個の ASCII 数字 (「0」から「9」まで) を表す。指定したクラスが存在しない場合、または ContentHandler のサブクラスではない場合は、UnknownServiceException がスローされる。

返り値:
取り寄せたオブジェクト。返されたオブジェクトの種類を調べるには、instanceOf 操作を行う
例外 : IOException
内容の取得中に I/O エラーが発生した
例外 : UnknownServiceException
その内容の種類をプロトコルがサポートしていない
参照:
createContentHandler, getContentType, setContentHandlerFactory
 o getInputStream
  public InputStream getInputStream() throws IOException
この接続からの入力を受け取る入力ストリームを返します。

返り値:
この接続からの入力を受け取る入力ストリーム
例外 : IOException
入力ストリームの作成中に I/O エラーが発生した
例外 : UnknownServiceException
プロトコルが入力をサポートしていない
 o getOutputStream
  public OutputStream getOutputStream() throws IOException
この接続に書き込みを行う出力ストリームを返します。

返り値:
この接続に書き込みを行う出力ストリーム
例外 : IOException
出力ストリームの作成中に I/O エラーが発生した
例外 : UnknownServiceException
プロトコルが出力をサポートしていない
 o toString
  public String toString()
この URL 接続の String 表現を返します。

返り値:
この URLConnection の文字列表現
オーバーライド:
Object クラスの toString
 o setDoInput
  public void setDoInput(boolean doinput)
この URLConnectiondoInput フィールド値を指定した値に設定します。

URL 接続を使用して入出力を行うことができます。URL 接続を使用して入力を行う場合には DoInput フラグを true に設定します。出力を行う場合には false に設定します。DoOutput を明示的に true に設定しない限り、doInput のデフォルト値は true です。DoOutput を true に設定した場合には、DoInput のデフォルト値は false になります。

パラメータ:
value - 新しい値
参照:
doInput
 o getDoInput
  public boolean getDoInput()
この URLConnectiondoInput フラグの値を返します。

返り値:
この URLConnectiondoInput フラグの値
参照:
doInput
 o setDoOutput
  public void setDoOutput(boolean dooutput)
この URLConnectiondoOutput フィールド値を指定した値に設定します。

URL 接続を使用して入出力を行うことができます。URL 接続を使用して出力を行う場合には、DoOutput フラグを true に設定します。入力を行う場合には false に設定します。デフォルト値は false です。

パラメータ:
value - 新しい値
参照:
doOutput
 o getDoOutput
  public boolean getDoOutput()
この URLConnectiondoOutput フラグの値を返します。

返り値:
URLConnectiondoOutput フラグの値
参照:
doOutput
 o setAllowUserInteraction
  public void setAllowUserInteraction(boolean allowuserinteraction)
この URLConnectionallowUserInteraction フィールド値を設定します。

パラメータ:
allowuserinteraction - 新しい値
参照:
allowUserInteraction
 o getAllowUserInteraction
  public boolean getAllowUserInteraction()
このオブジェクトの allowUserInteraction フィールド値を返します。

返り値:
このオブジェクトの allowUserInteraction フィールド値
参照:
allowUserInteraction
 o setDefaultAllowUserInteraction
  public static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
以降に作成されるすべての URLConnection オブジェクトの allowUserInteraction フィールドのデフォルト値を指定の値に設定します。

パラメータ:
defaultallowuserinteraction - 新しい値
参照:
allowUserInteraction
 o getDefaultAllowUserInteraction
  public static boolean getDefaultAllowUserInteraction()
allowUserInteraction フィールドのデフォルト値を返します。

デフォルト値は「sticky」( URLConnection の静的な状態の一部) です。このフラグは、以降に作成されるすべての URLConnection オブジェクトに適用されます。

返り値:
allowUserInteraction フィールドのデフォルト値
参照:
allowUserInteraction
 o setUseCaches
  public void setUseCaches(boolean usecaches)
この URLConnectionuseCaches フィールドを指定の値に設定します。

一部のプロトコルは、ドキュメントをキャッシュします。しかし、場合によってはキャッシュを無視して情報を転送する (ブラウザの「再読込」ボタン) ことが重要なこともあります。接続の UseCaches フラグが true の場合、その接続ではキャッシュを使用することができます。このフラグが false の場合、キャッシュは無視されます。デフォルト値は DefaultUseCaches の値によって決まりますが、 DefaultUseCaches のデフォルト値は true です。

参照:
useCaches
 o getUseCaches
  public boolean getUseCaches()
この URLConnectionuseCaches フィールド値を返します。

返り値:
この URLConnectionuseCaches フィールド値
参照:
useCaches
 o setIfModifiedSince
  public void setIfModifiedSince(long ifmodifiedsince)
この URLConnectionifModifiedSince フィールド値を指定した値に設定します。

パラメータ:
value - 新しい値
参照:
ifModifiedSince
 o getIfModifiedSince
  public long getIfModifiedSince()
このオブジェクトの ifModifiedSince フィールド値を返します。

返り値:
このオブジェクトの ifModifiedSince フィールド値
参照:
ifModifiedSince
 o getDefaultUseCaches
  public boolean getDefaultUseCaches()
URLConnectionuseCaches フラグのデフォルト値を返します。

デフォルト値は「sticky」( URLConnection の静的な状態の一部) です。このフラグは、以降に作成されるすべての URLConnection オブジェクトに適用されます。

返り値:
URLConnectionuseCaches フラグのデフォルト値
参照:
useCaches
 o setDefaultUseCaches
  public void setDefaultUseCaches(boolean defaultusecaches)
useCaches フィールドのデフォルト値を指定の値に設定します。

パラメータ:
defaultusecaches - 新しい値
参照:
useCaches
 o setRequestProperty
  public void setRequestProperty(String key,
                                 String value)
一般要求プロパティを設定します。

パラメータ:
key - 要求を識別するキーワード (「accept」など)
value - キーワードに関連付ける値
 o getRequestProperty
  public String getRequestProperty(String key)
この接続の指定した一般要求プロパティの値を返します。

返り値:
この接続の指定した一般要求プロパティの値
 o setDefaultRequestProperty
  public static void setDefaultRequestProperty(String key,
                                               String value)
一般要求プロパティのデフォルト値を設定します。URLConnection は、作成時にこれらの値を使って初期化されます。

パラメータ:
key - 要求を識別するキーワード (「accept」など)
value - キーワードに関連付ける値
 o getDefaultRequestProperty
  public static String getDefaultRequestProperty(String key)
デフォルトの要求プロパティ値を返します。デフォルトの要求プロパティはすべての接続に設定されています。

返り値:
指定したキーのデフォルトの一般プロパティ値
参照:
setDefaultRequestProperty
 o setContentHandlerFactory
  public static synchronized void setContentHandlerFactory(ContentHandlerFactory fac)
アプリケーションの ContentHandlerFactory を設定します。アプリケーションでは最大で 1 回呼び出すことができます。

内容の種類をもとに ContentHandler を作成する際には ContentHandlerFactory が使用されます。

パラメータ:
fac - 目的のファクトリ
例外 : Error
ファクトリがすでに定義されている
参照:
ContentHandlerFactory, getContent
 o guessContentTypeFromName
  protected static String guessContentTypeFromName(String fname)
URL の指定した「ファイル」コンポーネントをもとに、オブジェクトの内容の種類を推測します。このメソッドは、getContentType メソッドをオーバーライドするサブクラスで使用すると便利です。

パラメータ:
fname - ファイル名
返り値:
ファイル名をもとに推測したオブジェクトの内容の種類
参照:
getContentType
 o guessContentTypeFromStream
  public static String guessContentTypeFromStream(InputStream is) throws IOException
入力ストリームの先頭の文字をもとに、入力ストリームの種類を推測します。このクラスは、getContentType メソッドをオーバーライドするサブクラスで使用することができます。

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

パラメータ:
is - サポートがマークする入力ストリーム
返り値:
推測した内容の種類、推測できない場合は null
例外 : IOException
入力ストリームの読み取り中に I/O エラーが発生した
参照:
mark, markSupported, getContentType

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス