|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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
getContentType
メソッドは、リモートオブジェクトのタイプを判別するときに getContent
メソッドによって使用されます。サブクラスでは、getContentType
メソッドをオーバーライドすると便利でしょう。
一般に、接続前のパラメータと一般要求プロパティは、無視してもかまいません。接続前のパラメータと一般要求プロパティのデフォルト値は、適切と思われる値に設定されます。このインタフェースの大部分のクライアントでよく使用されるメソッドは getInputStream
メソッドと getObject
メソッドの 2 つだけです。これらは URL
クラスの便利なメソッドによってミラーされます。
http
接続の要求プロパティとヘッダフィールドの詳細は、次のサイトを参照してください。
http://www.w3.org/hypertext/WWW/Protocols/HTTP1.0/draft-ietf-http-spec.html
fileNameMap
に関する注: JDK 1.1.6 より前のバージョンでは、URLConnection
の fileNameMap
フィールドは public でした。JDK 1.1.6 以降では、fileNameMap
は private です。これへのアクセスに、アクセス用メソッドとして getFileNameMap、変更用メソッドとして setFileNameMap が追加されました。この変更については、「JDK 旧バージョンとの互換性」のページにも説明があります。
URL.openConnection()
,
connect()
,
getContent()
,
getContentEncoding()
,
getContentLength()
,
getContentType()
,
getDate()
,
getExpiration()
,
getHeaderField(int)
,
getHeaderField(java.lang.String)
,
getInputStream()
,
getLastModified()
,
getOutputStream()
,
setAllowUserInteraction(boolean)
,
setDefaultRequestProperty(java.lang.String, java.lang.String)
,
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 接続を構築します。 |
メソッドの概要 | |
abstract void |
connect()
この URL が参照するリソースへの通信リンクを確立します (通信リンクが確立されていない場合)。 |
boolean |
getAllowUserInteraction()
このオブジェクトの allowUserInteraction フィールド値を返します。 |
Object |
getContent()
この URL 接続のコンテンツを取得します。 |
String |
getContentEncoding()
content-encoding ヘッダフィールドの値を返します。 |
int |
getContentLength()
content-length ヘッダフィールドの値を返します。 |
String |
getContentType()
content-type ヘッダフィールドの値を返します。 |
long |
getDate()
date ヘッダフィールドの値を返します。 |
static boolean |
getDefaultAllowUserInteraction()
allowUserInteraction フィールドのデフォルト値を返します。
|
static String |
getDefaultRequestProperty(String key)
デフォルトの要求プロパティ値を返します。 |
boolean |
getDefaultUseCaches()
URLConnection の useCaches フラグのデフォルト値を返します。
|
boolean |
getDoInput()
この URLConnection の doInput フラグの値を返します。 |
boolean |
getDoOutput()
この URLConnection doOutput フラグの値を返します。 |
long |
getExpiration()
expires ヘッダフィールドの値を返します。 |
static FileNameMap |
getFileNameMap()
FileNameMap を返します。 |
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 |
getIfModifiedSince()
このオブジェクトの ifModifiedSince フィールド値を返します。 |
InputStream |
getInputStream()
この接続からの入力を受け取る入力ストリームを返します。 |
long |
getLastModified()
last-modified ヘッダフィールドの値を返します。 |
OutputStream |
getOutputStream()
この接続に書き込みを行う出力ストリームを返します。 |
Permission |
getPermission()
このオブジェクトが表す接続の実行に必要なアクセス権を表す、Permission オブジェクトを返します。 |
String |
getRequestProperty(String key)
この接続の指定された一般要求プロパティの値を返します。 |
URL |
getURL()
この URLConnection の URL フィールド値を返します。 |
boolean |
getUseCaches()
この URLConnection の useCaches フィールド値を返します。 |
protected static String |
guessContentTypeFromName(String fname)
URL の指定された「ファイル」コンポーネントを基に、オブジェクトのコンテンツタイプを推測します。 |
static String |
guessContentTypeFromStream(InputStream is)
入力ストリームの先頭の文字を基に、入力ストリームの種類の決定を試みます。 |
void |
setAllowUserInteraction(boolean allowuserinteraction)
この URLConnection の allowUserInteraction フィールド値を設定します。 |
static void |
setContentHandlerFactory(ContentHandlerFactory fac)
アプリケーションの ContentHandlerFactory を設定します。 |
static void |
setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
将来に作成されるすべての URLConnection オブジェクトの allowUserInteraction フィールドについて、デフォルト値を指定された値に設定します。 |
static void |
setDefaultRequestProperty(String key,
String value)
一般要求プロパティのデフォルト値を設定します。 |
void |
setDefaultUseCaches(boolean defaultusecaches)
useCaches フィールドのデフォルト値を、指定された値に設定します。 |
void |
setDoInput(boolean doinput)
この URLConnection の doInput フィールド値を指定した値に設定します。
|
void |
setDoOutput(boolean dooutput)
この URLConnection の doOutput フィールドの値を、指定された値に設定します。
|
static void |
setFileNameMap(FileNameMap map)
FileNameMap を設定します。 |
void |
setIfModifiedSince(long ifmodifiedsince)
この URLConnection の ifModifiedSince フィールド値を、指定された値に設定します。 |
void |
setRequestProperty(String key,
String value)
一般要求プロパティを設定します。 |
void |
setUseCaches(boolean usecaches)
この URLConnection の useCaches フィールドを、指定された値に設定します。
|
String |
toString()
この URL 接続の String 表現を返します。 |
クラス java.lang.Object から継承したメソッド |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
フィールドの詳細 |
protected URL url
このフィールドの値にアクセスするには、getURL
メソッドを使用します。
この変数のデフォルト値は、URLConnection
コンストラクタの URL 引数の値です。
getURL()
,
url
protected boolean doInput
setDoInput
メソッドを使用します。この変数の値を取得するには getDoInput
メソッドを使用します。
URL 接続を使用して、入力と出力を行うことができます。アプリケーションで URL 接続からデータの読み込みを行う際には、doInput
フラグを true
に設定します。
このフィールドのデフォルト値は true
です。
getDoInput()
,
setDoInput(boolean)
protected boolean doOutput
setDoOutput
メソッドを使用します。この変数値を取得するには getDoInput
メソッドを使用します。
URL 接続を使用して、入力や出力を行うことができます。アプリケーションで URL 接続に書き込みを行う場合は、doOutput
フラグを true
に設定します。
このフィールドのデフォルト値は false
です。
getDoOutput()
,
setDoOutput(boolean)
protected boolean allowUserInteraction
true
の場合、この URL
はユーザとの対話処理 (認証ダイアログのポップアップなど) の実行が可能なコンテキストで検査されています。false
の場合、ユーザとの対話処理は許可されていません。
このフィールドの値を設定するには setAllowUserInteraction
メソッドを使用します。このフィールドの値を取得するには getAllowUserInteraction
メソッドを使用します。 このフィールドのデフォルト値は、setDefaultAllowUserInteraction
メソッドを最後に呼び出した時に引数に指定した値です。
getAllowUserInteraction()
,
setAllowUserInteraction(boolean)
,
setDefaultAllowUserInteraction(boolean)
protected boolean useCaches
true
の場合、プロトコルは可能な時にキャッシュ内のデータを使用することができます。false
の場合、プロトコルは常にオブジェクトの新しいコピーを取得する必要があります。
このフィールド値を設定するには setUseCaches
メソッドを使用します。このフィールド値を取得するには getUseCaches
メソッドを使用します。
このフィールドのデフォルト値は、 setDefaultUseCaches
メソッドを最後に呼び出したときに指定した値です。
setUseCaches(boolean)
,
getUseCaches()
,
setDefaultUseCaches(boolean)
protected long ifModifiedSince
ゼロ以外の値は、1970 年 1 月 1 日 GMT から起算した秒数を表します。この値よりもあとにオブジェクトが変更されている場合にだけ、オブジェクトがフェッチされます。
この変数を設定するには setIfModifiedSince
メソッドを使用します。この変数値を取得するには getIfModifiedSince
メソッドを使用します。
このフィールドのデフォルト値は 0
(常にオブジェクトをフェッチする) です。
getIfModifiedSince()
,
setIfModifiedSince(long)
protected boolean connected
false
の場合、この接続オブジェクトは指定された URL への通信リンクを作成していません。true
の場合は、通信リンクが確立されています。コンストラクタの詳細 |
protected URLConnection(URL url)
url
- 指定された URLメソッドの詳細 |
public static FileNameMap getFileNameMap()
public static void setFileNameMap(FileNameMap map)
セキュリティマネージャが存在する場合、このメソッドはまずセキュリティマネージャの checkSetFactory
メソッドを呼び出すことにより、この操作が許可されていることを確認します。この結果、SecurityException になることがあります。
map
- 設定する FileNameMapcheckSetFactory
メソッドがこの操作を許可しない場合SecurityManager.checkSetFactory()
public abstract void connect() throws IOException
connect
メソッドを呼び出したときに、接続がすでに確立されていれば (connected
フィールドの値が true
であれば)、メソッド呼び出しは無視されます。
URLConnection オブジェクトは 2 つの段階を踏みます。まずオブジェクトが作成され、そのあと接続が確立されます。作成後、接続を確立する前に、さまざまなオプション (doInput や UseCaches など) を指定することができます。接続後にこれらのオプションを設定しようとするとエラーになります。接続に依存する操作 (getContentLength など) を行うと、必要に応じて接続が暗黙的に確立されます。
connected
public URL getURL()
URLConnection
の URL
フィールド値を返します。URLConnection
の URL
フィールド値url
public int getContentLength()
content-length
ヘッダフィールドの値を返します。-1
public String getContentType()
content-type
ヘッダフィールドの値を返します。null
getHeaderField(java.lang.String)
public String getContentEncoding()
content-encoding
ヘッダフィールドの値を返します。null
getHeaderField(java.lang.String)
public long getExpiration()
expires
ヘッダフィールドの値を返します。getHeaderField(java.lang.String)
public long getDate()
date
ヘッダフィールドの値を返します。0
。値は 1970 年 1 月 1 日 GMT から起算した秒数として返されるgetHeaderField(java.lang.String)
public long getLastModified()
last-modified
ヘッダフィールドの値を返します。値は 1970 年 1 月 1 日 GMT から起算した秒数として返されます。URLConnection
が参照するリソースが変更された日付。不明の場合は 0getHeaderField(java.lang.String)
public String getHeaderField(String name)
name
- ヘッダフィールドの名前null
public int getHeaderFieldInt(String name, int Default)
一部の種類の接続 (http-ng
など) は事前に解析してあるヘッダを持つので、この形式の getHeaderField
が存在しています。そのような種類の接続クラスでは、このメソッドをオーバーライドして解析を回避することができます。
name
- ヘッダフィールドの名前Default
- デフォルト値Default
の値public long getHeaderFieldDate(String name, long Default)
この形式の getHeaderField
が存在している理由は、一部の種類の接続 (http-ng
など) が事前に解析してあるヘッダを持つためです。そのような種類の接続クラスでは、このメソッドをオーバーライドして解析を回避することができます。
name
- ヘッダフィールドの名前Default
- デフォルト値Default
引数public String getHeaderFieldKey(int n)
n
番目のヘッダフィールドのキーを返します。n
- インデックスn
番目のヘッダフィールドのキー。フィールドの数が n
個よりも少ない場合は null
public String getHeaderField(int n)
n
番目のヘッダフィールドの値を返します。フィールドの数が n
個よりも少ない場合は null
を返します。
このメソッドと getHeaderFieldKey
メソッドを組み合わせて使用すると、メッセージ内のすべてのヘッダを繰り返し処理することができます。
n
- インデックスn
番目のヘッダフィールドの値getHeaderFieldKey(int)
public Object getContent() throws IOException
このメソッドでは最初に getContentType
メソッドを呼び出し、オブジェクトの情報の種類を判別します。アプリケーションでその種類の内容を見るのが初めての場合は、その種類の情報ヘッダが作成されます。
setContentHandlerFactory
メソッドを使用し ContentHandler ファクトリのインスタンスがセットアップされている場合は、そのインスタンスの createContentHandler
メソッドを呼び出し、内容の種類を引数として渡す。その結果、その内容の種類の ContentHandler が返される
createContentHandler
メソッドが null
を返す場合、アプリケーションは次の名前のクラスをロードする
<contentType> は、内容の種類を表わす文字列のスラッシュ文字をすべて ピリオド (「.」) に置換し、アルファベット以外のすべての文字を下線文字「sun.net.www.content.<contentType>
_
」に置換することによって生成される。アルファベット文字とは、26 個の大文字の ASCII 文字 (「A
」から「Z
」まで)、26 個の小文字の ASCII 文字 (「a
」から「z
」まで、および 10 個の ASCII 数字 (「0
」から「9
」まで) を表す。指定したクラスが存在しない場合、または ContentHandler
のサブクラスではない場合は、UnknownServiceException
がスローされる
instanceOf
操作を行うContentHandlerFactory.createContentHandler(java.lang.String)
,
getContentType()
,
setContentHandlerFactory(java.net.ContentHandlerFactory)
public Permission getPermission() throws IOException
java.security.AllPermission
を返します。サブクラスでは、URL に接続するために必要なアクセス権をもっとも適切に表すアクセス権を返すように、このメソッドをオーバーライドします。たとえば、file:
の URL を表すURLConnection
では、java.io.FilePermission
オブジェクトが返されます。
返されるアクセス権は、接続の状況に依存します。たとえば、接続前のアクセス権は、接続したあとのアクセス権とは異なる場合があります。たとえば、foo.com という HTTP サーバで、接続を別のホスト bar.com にリダイレクトしているとします。接続する前に connection によって返されるアクセス権は、foo.com への接続に必要なアクセス権です。一方、接続のあとで返されるアクセス権は、bar.com へのアクセス権になります。
アクセス権は、通常 2 つの目的に使います。URLConnections により取得したオブジェクトのキャッシュの保護、および受け側が特定の URL を知る権利の確認です。前者の場合、アクセス権はオブジェクトを取得したあとで取得されます。たとえば HTTP 接続では、データの最終的な入手先となるホストに接続するためのアクセス権を表します。後者の場合、アクセス権は接続の前に取得およびテストされます。
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 になります。
value
- 新しい値doInput
public boolean getDoInput()
URLConnection
の doInput
フラグの値を返します。URLConnection
の doInput
フラグの値doInput
public void setDoOutput(boolean dooutput)
URLConnection
の doOutput
フィールドの値を、指定された値に設定します。
URL 接続を入出力に使うことができます。URL 接続を使用して出力を行う場合には、DoOutput フラグを true に設定します。入力を行う場合には false に設定します。デフォルト値は false です。
value
- 新しい値doOutput
public boolean getDoOutput()
URLConnection
doOutput フラグの値を返します。URLConnection
の doOutput
フラグの値doOutput
public void setAllowUserInteraction(boolean allowuserinteraction)
URLConnection
の allowUserInteraction
フィールド値を設定します。allowuserinteraction
- 新しい値allowUserInteraction
public boolean getAllowUserInteraction()
allowUserInteraction
フィールド値を返します。allowUserInteraction
フィールド値allowUserInteraction
public static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
URLConnection
オブジェクトの allowUserInteraction
フィールドについて、デフォルト値を指定された値に設定します。defaultallowuserinteraction
- 新しい値allowUserInteraction
public static boolean getDefaultAllowUserInteraction()
allowUserInteraction
フィールドのデフォルト値を返します。
デフォルト値は「sticky」(すべての URLConnection の静的な状態の一部) です。このフラグは、以降に作成されるすべての URLConnection オブジェクトに適用されます。
allowUserInteraction
フィールドのデフォルト値allowUserInteraction
public void setUseCaches(boolean usecaches)
URLConnection
の useCaches
フィールドを、指定された値に設定します。
一部のプロトコルは、ドキュメントをキャッシュします。しかし、場合によってはキャッシュを無視して情報を転送する (ブラウザの「再読込」ボタン) ことが重要なこともあります。接続の UseCaches フラグが true の場合、その接続ではキャッシュを使用することができます。このフラグが false の場合、キャッシュは無視されます。デフォルト値は DefaultUseCaches の値によって決まりますが、 DefaultUseCaches のデフォルト値は true です。
useCaches
public boolean getUseCaches()
URLConnection
の useCaches
フィールド値を返します。URLConnection
の useCaches
フィールド値useCaches
public void setIfModifiedSince(long ifmodifiedsince)
URLConnection
の ifModifiedSince
フィールド値を、指定された値に設定します。value
- 新しい値ifModifiedSince
public long getIfModifiedSince()
ifModifiedSince
フィールド値を返します。ifModifiedSince
フィールド値ifModifiedSince
public boolean getDefaultUseCaches()
URLConnection
の useCaches
フラグのデフォルト値を返します。
デフォルト値は「sticky」(すべての URLConnection の静的な状態の一部) です。このフラグは、以降に作成されるすべての URLConnection オブジェクトに適用されます。
URLConnection
の useCaches
フラグのデフォルト値useCaches
public void setDefaultUseCaches(boolean defaultusecaches)
useCaches
フィールドのデフォルト値を、指定された値に設定します。defaultusecaches
- 新しい値useCaches
public void setRequestProperty(String key, String value)
key
- 要求を識別するキーワード (「accept
」など)value
- キーワードに関連付ける値public String getRequestProperty(String key)
public static void setDefaultRequestProperty(String key, String value)
URLConnection
は、作成時にこれらの値を使って初期化されます。key
- 要求を識別するキーワード (「accept
」など)value
- キーワードに関連付ける値public static String getDefaultRequestProperty(String key)
setDefaultRequestProperty(java.lang.String, java.lang.String)
public static void setContentHandlerFactory(ContentHandlerFactory fac)
ContentHandlerFactory
を設定します。アプリケーションでは最大で 1 回呼び出すことができます。
コンテンツの種類を基に ContentHandler を構築する際には ContentHandlerFactory
が使用されます。
セキュリティマネージャが存在する場合、このメソッドはまずセキュリティマネージャの checkSetFactory
メソッドを呼び出すことにより、この操作が許可されていることを確認します。この結果、SecurityException になることがあります。
fac
- 目的のファクトリcheckSetFactory
メソッドがこの操作を許可しない場合ContentHandlerFactory
,
getContent()
,
SecurityManager.checkSetFactory()
protected static String guessContentTypeFromName(String fname)
getContentType
メソッドをオーバーライドするサブクラスで使用すると便利です。fname
- ファイル名getContentType()
public static String guessContentTypeFromStream(InputStream is) throws IOException
getContentType
メソッドをオーバーライドするサブクラスで使用することができます。
理想的な状態ではこのルーチンは必要ありません。しかし、コンテンツタイプとして不正な値を返す http
サーバは数多くあります。さらに、標準的ではない拡張子もたくさんあります。このため、http
サーバが返すコンテンツタイプをうのみにするよりも、データを基にコンテンツタイプを直接推測した方が正確な場合がよくあります。
is
- サポートがマークする入力ストリームnull
InputStream.mark(int)
,
InputStream.markSupported()
,
getContentType()
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |