全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
java.lang.Object | +----java.net.URLConnection
URLConnection は、アプリケーションと URL との間の通信リンクを表すすべてのクラスのスーパークラスです。このクラスのインスタンスを使用して、URL で参照するリソースの読み込みと書き込みの両方を行うことができます。一般に、URL への接続を作成する際には複数の手順が必要となります。
openConnection() |
connect() |
|---|---|
| リモートリソースへの接続に影響するパラメータを操作する | リソース、クエリーヘッダーフィールド、情報の内容と対話処理を行う |
openConnection メソッドを呼び出すことによって、接続オブジェクトを作成する
connect メソッドを使用してリモートオブジェクトへの実際の接続を確立する
セットアップパラメータを修正するには次のメソッドを使用します。
setAllowUserInteraction
setDoInput
setDoOutput
setIfModifiedSince
setUseCaches
一般要求プロパティを修正するには次のメソッドを使用します。
setRequestProperty
AllowUserInteraction パラメータと UseCaches パラメータのデフォルト値を設定するには、setDefaultAllowUserInteraction と setDefaultUseCaches を使用します。一般要求プロパティのデフォルト値を設定するには、setDefaultRequestProperty メソッドを使用します。
上記の両方の set メソッドには対応する get メソッドがあり、パラメータや一般要求プロパティの値を取得することができます。使用できるパラメータと一般要求プロパティは、プロトコルによって異なります。
リモートオブジェクトへの接続を確立したあと、ヘッダーフィールドと内容にアクセスするには次のメソッドを使用します。
getContent
getHeaderField
getInputStream
getOutputStream
一部のヘッダーフィールドには頻繁にアクセスします。次のメソッドは、これらのフィールドにアクセスする際に便利なメソッドです。
getContentEncoding
getContentLength
getContentType
getDate
getExpiration
getLastModifed
getContent メソッドは、リモートオブジェクトの種類を判別する際に getContentType メソッドを使用します。サブクラスでは、getContentType メソッドをオーバーライドするときにこのメソッドを使用すると便利です。
一般に、接続前のパラメータと一般要求プロパティは、無視することができます。接続前のパラメータと一般要求プロパティのデフォルト値は読み取りが可能です。このインタフェースの大部分のクライアントで、よく使用するメソッドは getInputStream メソッドと getObject メソッドです。これらは URL クラスの便利なメソッドによってミラーされます。
http 接続の要求プロパティとヘッダーフィールドの詳細については、次のサイトを参照してください。
http://www.w3.org/hypertext/WWW/Protocols/HTTP1.0/draft-ietf-http-spec.html
true の場合、この URL はユーザーとの対話処理 (認証ダイアログのポップアップなど) の実行が可能なコンテキストで検査されている。
false の場合、この接続オブジェクトは指定の URL への通信リンクを作成していない。
setDoInput メソッドを使用する。
setDoOutput メソッドを使用する。
true の場合、そのプロトコルでは可能なときにはいつでもキャッシュ内のデータを使用することができる。
allowUserInteraction フィールドの値を返す。
content-encoding ヘッダーフィールドの値を返す。
content-length ヘッダーフィールドの値を返す。
content-type ヘッダーフィールドの値を返す。
date ヘッダーフィールドの値を返す。
allowUserInteraction フィールドのデフォルト値を返す。
URLConnection の useCaches フラグのデフォルト値を返す。
URLConnection の doInput フラグの値を返す。
URLConnection の doOutput フラグの値を返す。
expires ヘッダーフィールドの値を返す。
n 番目のヘッダーフィールドの値を返す。
n 番目のヘッダーフィールドのキーを返す。
ifModifiedSince フィールドの値を返す。
last-modified ヘッダーフィールドの値を返す。
URLConnection の URL フィールドの値を返す。
URLConnection の useCaches フィールドの値を返す。
URLConnection の allowUserInteraction フィールドの値を設定する。
ContentHandlerFactory を設定する。
URLConnection オブジェクトの allowUserInteraction フィールドのデフォルト値を指定した値に設定する。
useCaches フィールドの設定値を指定した値に設定する。
URLConnection の doInput フィールド値を指定した値に設定する。
URLConnection の doOutput フィールド値を指定した値に設定する。
URLConnection の ifModifiedSince フィールド値を指定した値に設定する。
URLConnection の useCaches フィールド値を指定した値に設定する。
String 表現を返す。
protected URL url
このフィールドの値にアクセスするには、getURL メソッドを使用します。
この変数のデフォルト値は、URLConnection コンストラクタの URL 引数の値です。
protected boolean doInput
setDoInput メソッドを使用します。この変数の値を取得するには getDoInput メソッドを使用します。
URL 接続を使用して、入力と出力を行うことができます。アプリケーションで URL 接続からデータの読み込みを行う際には、doInput フラグを true に設定します。
このフィールドのデフォルト値は true です。
protected boolean doOutput
setDoOutput メソッドを使用します。この変数値を取得するには getDoInput メソッドを使用します。
URL 接続を使用して、入力や出力を行うことができます。アプリケーションで URL 接続に書き込みを行う場合は、doOutput フラグを true に設定します。
このフィールドのデフォルト値は false です。
protected boolean allowUserInteraction
true の場合、この URL はユーザーとの対話処理 (認証ダイアログのポップアップなど) の実行が可能なコンテキストで検査されています。false の場合、ユーザーとの対話処理は許可されていません。
このフィールドの値を設定するには setAllowUserInteraction メソッドを使用します。
このフィールドの値を取得するには getAllowUserInteraction メソッドを使用します。
このフィールドのデフォルト値は、setDefaultAllowUserInteraction メソッドを最後に呼び出したとき、引数に指定した値です。
protected boolean useCaches
trueの場合、プロトコルは可能なときにキャッシュ内のデータを使用することができます。false の場合、プロトコルは常にオブジェクトの新しいコピーを取得する必要があります。
このフィールド値を設定するには setUseCaches メソッドを使用します。このフィールド値を取得するには getUseCaches メソッドを使用します。
このフィールドのデフォルト値は、 setDefaultUseCaches メソッドを最後に呼び出したときに指定した値です。
protected long ifModifiedSince
ゼロ以外の値は、1970 年 1 月 1 日 GMT から数えた秒数を表します。この値よりもあとにオブジェクトが変更されている場合にだけ、オブジェクトが取り寄せられます。
この変数を設定するには setIfModifiedSince メソッドを使用します。この変数値を取得するには getIfModifiedSince メソッドを使用します。
このフィールドのデフォルト値は 0 (常にオブジェクトを取り寄せる) です。
public static FileNameMap fileNameMap
protected boolean connected
false の場合、この接続オブジェクトは指定した URL への通信リンクを作成していません。true の場合は、通信リンクが確立されています。
protected URLConnection(URL url)
public abstract void connect() throws IOException
connect メソッドを呼び出したときに、接続がすでに確立されていれば
(connected フィールドの値が true)、メソッド呼び出しは無視されます。
URLConnection オブジェクトは 2 つの段階を踏みます。まずオブジェクトが作成され、そのあと接続が確立されます。作成後、接続を確立する前に、さまざまなオプション (doInput や UseCaches など) を指定することができます。接続後にこれらのオプションを設定しようとするとエラーになります。接続に依存する操作 (getContentLength など) を行うと、必要に応じて接続が暗黙的に確立されます。
public URL getURL()
URLConnection の URL フィールド値を返します。
URLConnection の URL フィールド値
public int getContentLength()
content-length ヘッダーフィールドの値を返します。
-1
public String getContentType()
content-type ヘッダーフィールドの値を返します。
null
public String getContentEncoding()
content-encoding ヘッダーフィールドの値を返します。
null
public long getExpiration()
expires ヘッダーフィールドの値を返します。
public long getDate()
date ヘッダーフィールドの値を返します。
0 。値は 1970 年 1 月 1 日 GMT から数えた秒数として返される
public long getLastModified()
last-modified ヘッダーフィールドの値を返します。値は 1970 年 1 月 1 日 GMT から数えた秒数として返されます。
URLConnection が参照するリソースが変更されら日付。不明の場合は 0
public String getHeaderField(String name)
null
public int getHeaderFieldInt(String name,
int Default)
一部の種類の接続 (http-ng など) は事前に解析してあるヘッダーをもつので、この形式の getHeaderField が存在しています。そのような種類の接続クラスでは、このメソッドをオーバーライドして解析を回避することができます。
Default の値
public long getHeaderFieldDate(String name,
long Default)
一部の種類の接続 (http-ng など) では事前に解析してあるヘッダーをもつので、この形式の getHeaderField が存在しています。そのような種類の接続クラスでは、このメソッドをオーバーライドして解析を回避することができます。
Default 引数
public String getHeaderFieldKey(int n)
n 番目のヘッダーフィールドのキーを返します。
n 番目のヘッダーフィールドのキー。フィールドの数が n 個よりも少ない場合は null
public String getHeaderField(int n)
n 番目のヘッダーフィールドの値を返します。フィールドの数が n 個よりも少ない場合は null を返します。
このメソッドと getHeaderFieldKey メソッドを組み合わせて使用すると、メッセージ内のすべてのヘッダーを繰り返し処理することができます。
n 番目のヘッダーフィールドの値
public Object getContent() throws IOException
このメソッドでは最初に getContentType メソッドを呼び出し、オブジェクトの情報の種類を判別します。アプリケーションでその種類の内容を見るのがはじめての場合は、その種類の情報ヘッダーが作成されます。
setContentHandlerFactory メソッドを使用し ContentHandler ファクトリのインスタンスがセットアップされている場合は、そのインスタンスの createContentHandler メソッドを呼び出し、内容の種類を引数として渡す。その結果、その内容の種類の ContentHandler が返される。
createContentHandler メソッドが null を返す場合、アプリケーションは次の名前のクラスをロードする。
sun.net.www.content.<contentType>
<contentType> は、内容の種類を表わす文字列のスラッシュ文字をすべて ピリオド (「.」) に置換し、アルファベット以外のすべての文字を下線文字「_」に置換することによって作成される。アルファベット文字とは、26 個の大文字の ASCII 文字 (「A」から「Z」まで)、26 子の小文字の ASCII 文字 (「a」から「z」まで、および 10 個の ASCII 数字 (「0」から「9」まで) を表す。指定したクラスが存在しない場合、または ContentHandler のサブクラスではない場合は、UnknownServiceException がスローされる。
instanceOf 操作を行う
public InputStream getInputStream() throws IOException
public OutputStream getOutputStream() throws IOException
public String toString()
String 表現を返します。
URLConnection の文字列表現
public void setDoInput(boolean doinput)
URLConnection の doInput フィールド値を指定した値に設定します。
URL 接続を使用して入出力を行うことができます。URL 接続を使用して入力を行う場合には DoInput フラグを true に設定します。出力を行う場合には false に設定します。DoOutput を明示的に true に設定しない限り、doInput のデフォルト値は true です。DoOutput を true に設定した場合には、DoInput のデフォルト値は false になります。
public boolean getDoInput()
URLConnection の doInput フラグの値を返します。
URLConnection の doInput フラグの値
public void setDoOutput(boolean dooutput)
URLConnection の doOutput フィールド値を指定した値に設定します。
URL 接続を使用して入出力を行うことができます。URL 接続を使用して出力を行う場合には、DoOutput フラグを true に設定します。入力を行う場合には false に設定します。デフォルト値は false です。
public boolean getDoOutput()
URLConnection の doOutput フラグの値を返します。
URLConnection の doOutput フラグの値
public void setAllowUserInteraction(boolean allowuserinteraction)
URLConnection の allowUserInteraction フィールド値を設定します。
public boolean getAllowUserInteraction()
allowUserInteraction フィールド値を返します。
allowUserInteraction フィールド値
public static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
URLConnection オブジェクトの allowUserInteraction フィールドのデフォルト値を指定の値に設定します。
public static boolean getDefaultAllowUserInteraction()
allowUserInteraction フィールドのデフォルト値を返します。
デフォルト値は「sticky」( URLConnection の静的な状態の一部) です。このフラグは、以降に作成されるすべての URLConnection オブジェクトに適用されます。
allowUserInteraction フィールドのデフォルト値
public void setUseCaches(boolean usecaches)
URLConnection の useCaches フィールドを指定の値に設定します。
一部のプロトコルは、ドキュメントをキャッシュします。しかし、場合によってはキャッシュを無視して情報を転送する (ブラウザの「再読込」ボタン) ことが重要なこともあります。接続の UseCaches フラグが true の場合、その接続ではキャッシュを使用することができます。このフラグが false の場合、キャッシュは無視されます。デフォルト値は DefaultUseCaches の値によって決まりますが、 DefaultUseCaches のデフォルト値は true です。
public boolean getUseCaches()
URLConnection の useCaches フィールド値を返します。
URLConnection の useCaches フィールド値
public void setIfModifiedSince(long ifmodifiedsince)
URLConnection の ifModifiedSince フィールド値を指定した値に設定します。
public long getIfModifiedSince()
ifModifiedSince フィールド値を返します。
ifModifiedSince フィールド値
public boolean getDefaultUseCaches()
URLConnection の
useCaches フラグのデフォルト値を返します。
デフォルト値は「sticky」( URLConnection の静的な状態の一部) です。このフラグは、以降に作成されるすべての URLConnection オブジェクトに適用されます。
URLConnection の useCaches フラグのデフォルト値
public void setDefaultUseCaches(boolean defaultusecaches)
useCaches フィールドのデフォルト値を指定の値に設定します。
public void setRequestProperty(String key,
String value)
accept」など)
public String getRequestProperty(String key)
public static void setDefaultRequestProperty(String key,
String value)
URLConnection は、作成時にこれらの値を使って初期化されます。
accept」など)
public static String getDefaultRequestProperty(String key)
public static synchronized void setContentHandlerFactory(ContentHandlerFactory fac)
ContentHandlerFactory を設定します。アプリケーションでは最大で 1 回呼び出すことができます。
内容の種類をもとに ContentHandler を作成する際には ContentHandlerFactory が使用されます。
protected static String guessContentTypeFromName(String fname)
getContentType メソッドをオーバーライドするサブクラスで使用すると便利です。
public static String guessContentTypeFromStream(InputStream is) throws IOException
getContentType メソッドをオーバーライドするサブクラスで使用することができます。
理想的な状態ではこのルーチンは必要ありません。しかし、内容の種類として不正な値を返す http サーバは数多くあります。さらに、標準的ではない拡張子もたくさんあります。このため、http サーバーが返す内容の種類をうのみにするよりも、データをもとに内容の種類を直接推測した方が正確なことがよくあります。
null
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス