public abstract class HttpURLConnection extends URLConnection
単一の要求を行う際には個々の HttpURLConnection インスタンスが使用されますが、その背後の HTTP サーバーへのネットワーク接続は、ほかのインスタンスと透過的に共有される可能性があります。要求後、HttpURLConnection の InputStream または OutputStream 上で close() メソッドを呼び出すと、そのインスタンスに関連付けられていたネットワークリソースが解放される可能性がありますが、共有されている持続接続への影響はまったくありません。disconnect() メソッドを呼び出した場合、持続接続がその時点でアイドル状態になっていれば、使用していたソケットがクローズされる可能性があります。
HTTP プロトコルハンドラには、システムプロパティーからアクセスできるいくつかの設定があります。これには、プロキシ設定やさまざまな他の設定が含まれます。
disconnect()
修飾子と型 | フィールドと説明 |
---|---|
protected int |
chunkLength
出力時にチャンクエンコーディングストリーミングモードを使用する場合のチャンク長。
|
protected int |
fixedContentLength
固定長ストリーミングモードを使用する場合の固定コンテンツ長。
|
protected long |
fixedContentLengthLong
固定長ストリーミングモードを使用する場合の固定コンテンツ長。
|
static int |
HTTP_ACCEPTED
HTTP Status-Code 202: 受け入れられました。
|
static int |
HTTP_BAD_GATEWAY
HTTP Status-Code 502: 不正なゲートウェイ。
|
static int |
HTTP_BAD_METHOD
HTTP Status-Code 405: メソッドが許可されていません。
|
static int |
HTTP_BAD_REQUEST
HTTP Status-Code 400: 不正な要求。
|
static int |
HTTP_CLIENT_TIMEOUT
HTTP Status-Code 408: 要求がタイムアウトしました。
|
static int |
HTTP_CONFLICT
HTTP Status-Code 409: 衝突しています。
|
static int |
HTTP_CREATED
HTTP Status-Code 201: 作成されました。
|
static int |
HTTP_ENTITY_TOO_LARGE
HTTP Status-Code 413: 要求のエンティティーが大きすぎます。
|
static int |
HTTP_FORBIDDEN
HTTP Status-Code 403: 禁止されています。
|
static int |
HTTP_GATEWAY_TIMEOUT
HTTP Status-Code 504: ゲートウェイがタイムアウトしました。
|
static int |
HTTP_GONE
HTTP Status-Code 410: 存在しません。
|
static int |
HTTP_INTERNAL_ERROR
HTTP Status-Code 500: 内部サーバーエラー。
|
static int |
HTTP_LENGTH_REQUIRED
HTTP Status-Code 411: 長さが必要です。
|
static int |
HTTP_MOVED_PERM
HTTP Status-Code 301: 永続的に移動されました。
|
static int |
HTTP_MOVED_TEMP
HTTP Status-Code 302: 一時的なリダイレクト。
|
static int |
HTTP_MULT_CHOICE
HTTP Status-Code 300: 複数の選択肢があります。
|
static int |
HTTP_NO_CONTENT
HTTP Status-Code 204: コンテンツがありません。
|
static int |
HTTP_NOT_ACCEPTABLE
HTTP Status-Code 406: 受け入れられません。
|
static int |
HTTP_NOT_AUTHORITATIVE
HTTP Status-Code 203: 信頼できない情報です。
|
static int |
HTTP_NOT_FOUND
HTTP Status-Code 404: 見つかりません。
|
static int |
HTTP_NOT_IMPLEMENTED
HTTP Status-Code 501: 実装されていません。
|
static int |
HTTP_NOT_MODIFIED
HTTP Status-Code 304: 変更されていません。
|
static int |
HTTP_OK
HTTP Status-Code 200: OK です。
|
static int |
HTTP_PARTIAL
HTTP Status-Code 206: 部分的なコンテンツ。
|
static int |
HTTP_PAYMENT_REQUIRED
HTTP Status-Code 402: 支払いの必要があります。
|
static int |
HTTP_PRECON_FAILED
HTTP Status-Code 412: 前提条件が満たされていません。
|
static int |
HTTP_PROXY_AUTH
HTTP Status-Code 407: プロキシ認証が必要です。
|
static int |
HTTP_REQ_TOO_LONG
HTTP Status-Code 414: 要求の URI が大きすぎます。
|
static int |
HTTP_RESET
HTTP Status-Code 205: コンテンツをリセットします。
|
static int |
HTTP_SEE_OTHER
HTTP Status-Code 303: ほかを参照してください。
|
static int |
HTTP_SERVER_ERROR
非推奨。
間違ったフィールドであり、存在するべきではありません。
|
static int |
HTTP_UNAUTHORIZED
HTTP Status-Code 401: 承認されていません。
|
static int |
HTTP_UNAVAILABLE
HTTP Status-Code 503: サービスが使用不可能です。
|
static int |
HTTP_UNSUPPORTED_TYPE
HTTP Status-Code 415: サポートされていないメディアタイプです。
|
static int |
HTTP_USE_PROXY
HTTP Status-Code 305: プロキシを使用します。
|
static int |
HTTP_VERSION
HTTP Status-Code 505: サポートされていない HTTP バージョンです。
|
protected boolean |
instanceFollowRedirects
true の場合、プロトコルは自動的にリダイレクトに従います。 |
protected String |
method
HTTP メソッド (GET、POST、PUT など) です。
|
protected int |
responseCode
3 桁の HTTP ステータスコードを表す
int です。 |
protected String |
responseMessage
HTTP 応答メッセージです。
|
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
修飾子 | コンストラクタと説明 |
---|---|
protected |
HttpURLConnection(URL u)
HttpURLConnection のコンストラクタです。
|
修飾子と型 | メソッドと説明 |
---|---|
abstract void |
disconnect()
サーバーへの要求が近い将来発生しそうにないことを示します。
|
InputStream |
getErrorStream()
接続が失敗したが、それにもかかわらずサーバーから有用なデータを送信されてきた場合に、エラーストリームを返します。
|
static boolean |
getFollowRedirects()
HTTP リダイレクト (3xx) に自動的に従うかどうかを示す
boolean を返します。 |
String |
getHeaderField(int n)
n 番目のヘッダーフィールドの値を返します。 |
long |
getHeaderFieldDate(String name, long Default)
指定されたフィールドを日付として構文解析した値を返します。
|
String |
getHeaderFieldKey(int n)
n 番目のヘッダーフィールドのキーを返します。 |
boolean |
getInstanceFollowRedirects()
この
HttpURLConnection の instanceFollowRedirects フィールドの値を返します。 |
Permission |
getPermission()
接続先のホストとポートに接続するために必要なアクセス権を表す
SocketPermission オブジェクトを返します。 |
String |
getRequestMethod()
要求メソッドを取得します。
|
int |
getResponseCode()
HTTP 応答メッセージからステータスコードを取得します。
|
String |
getResponseMessage()
サーバーから応答コードとともに HTTP 応答メッセージが返された場合、そのメッセージを取得します。
|
void |
setChunkedStreamingMode(int chunklen)
このメソッドを使用すれば、コンテンツ長があらかじめわかっていない場合に、内部バッファーを使用しない HTTP 要求本体のストリーミングを有効にできます。
|
void |
setFixedLengthStreamingMode(int contentLength)
このメソッドを使用すれば、コンテンツ長があらかじめわかっている場合に、内部バッファーを使用しない HTTP 要求本体のストリーミングを有効にすることができます。
|
void |
setFixedLengthStreamingMode(long contentLength)
このメソッドを使用すれば、コンテンツ長があらかじめわかっている場合に、内部バッファーを使用しない HTTP 要求本体のストリーミングを有効にすることができます。
|
static void |
setFollowRedirects(boolean set)
HTTP リダイレクト (応答コード 3xx の要求) に、このクラスが自動的に従うべきかどうかを設定します。
|
void |
setInstanceFollowRedirects(boolean followRedirects)
HTTP リダイレクト (応答コード 3xx の要求) を、この
HttpURLConnection インスタンスで自動的に従うかどうかを設定します。 |
void |
setRequestMethod(String method)
URL 要求のメソッドを次のどれかに設定します。
GET POST HEAD OPTIONS PUT DELETE TRACE のうち、どれが有効であるかはプロトコルの制限によって決まります。
|
abstract boolean |
usingProxy()
接続でプロキシを使用するかどうかを表します。
|
addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentLengthLong, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderFieldInt, getHeaderFieldLong, getHeaderFields, getIfModifiedSince, getInputStream, getLastModified, getOutputStream, getReadTimeout, getRequestProperties, getRequestProperty, getURL, getUseCaches, guessContentTypeFromName, guessContentTypeFromStream, setAllowUserInteraction, setConnectTimeout, setContentHandlerFactory, setDefaultAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setReadTimeout, setRequestProperty, setUseCaches, toString
protected String method
protected int chunkLength
-1
は、出力時のチャンクエンコーディングが無効であることを意味します。protected int fixedContentLength
-1
は、出力時の固定長ストリーミングモードが無効であることを意味します。
注: コンテンツの長さをより長く設定できるため、このフィールドの代わりに fixedContentLengthLong
が推奨されています。
protected long fixedContentLengthLong
-1
は、出力時の固定長ストリーミングモードが無効であることを意味します。protected int responseCode
int
です。
protected String responseMessage
protected boolean instanceFollowRedirects
true
の場合、プロトコルは自動的にリダイレクトに従います。false
の場合、プロトコルは自動的にはリダイレクトに従いません。
このフィールドは、setInstanceFollowRedirects
メソッドによって設定されます。その値は、getInstanceFollowRedirects
メソッドによって返されます。
HttpURLConnection 作成時、デフォルト値は static followRedirects の値に基づきます。
public static final int HTTP_OK
public static final int HTTP_CREATED
public static final int HTTP_ACCEPTED
public static final int HTTP_NOT_AUTHORITATIVE
public static final int HTTP_NO_CONTENT
public static final int HTTP_RESET
public static final int HTTP_PARTIAL
public static final int HTTP_MULT_CHOICE
public static final int HTTP_MOVED_PERM
public static final int HTTP_MOVED_TEMP
public static final int HTTP_SEE_OTHER
public static final int HTTP_NOT_MODIFIED
public static final int HTTP_USE_PROXY
public static final int HTTP_BAD_REQUEST
public static final int HTTP_UNAUTHORIZED
public static final int HTTP_PAYMENT_REQUIRED
public static final int HTTP_FORBIDDEN
public static final int HTTP_NOT_FOUND
public static final int HTTP_BAD_METHOD
public static final int HTTP_NOT_ACCEPTABLE
public static final int HTTP_PROXY_AUTH
public static final int HTTP_CLIENT_TIMEOUT
public static final int HTTP_CONFLICT
public static final int HTTP_GONE
public static final int HTTP_LENGTH_REQUIRED
public static final int HTTP_PRECON_FAILED
public static final int HTTP_ENTITY_TOO_LARGE
public static final int HTTP_REQ_TOO_LONG
public static final int HTTP_UNSUPPORTED_TYPE
@Deprecated public static final int HTTP_SERVER_ERROR
public static final int HTTP_INTERNAL_ERROR
public static final int HTTP_NOT_IMPLEMENTED
public static final int HTTP_BAD_GATEWAY
public static final int HTTP_UNAVAILABLE
public static final int HTTP_GATEWAY_TIMEOUT
public static final int HTTP_VERSION
protected HttpURLConnection(URL u)
u
- URLpublic String getHeaderFieldKey(int n)
n
番目のヘッダーフィールドのキーを返します。実装によっては、0
番目のヘッダーフィールドを特別なものとして、つまり HTTP サーバーから返されたステータス行として扱うことがあります。この場合、getHeaderField(0)
はそのステータス行を返しますが、getHeaderFieldKey(0)
は null を返します。getHeaderFieldKey
、クラス: URLConnection
n
− インデックス。ここで n は 0 以上です。n
番目のヘッダーフィールドのキー。キーが存在しない場合は null
。public void setFixedLengthStreamingMode(int contentLength)
アプリケーションが、指定されたコンテンツ長を超えるデータを書き込もうとしたり、指定された量の書き込みを終える前に OutputStream をクローズしたりすると、例外がスローされます。
出力ストリーム処理を有効にした場合、認証とリダイレクションを自動的に処理することはできません。認証またはリダイレクションが必要とされる場合には、応答の読み取り時に HttpRetryException がスローされます。この例外を調べれば、エラーの詳細がわかります。
このメソッドは、URLConnection の接続前に呼び出してください。
注: コンテンツの長さをより長く設定できるため、このメソッドの代わりに setFixedLengthStreamingMode(long)
が推奨されています。
contentLength
- OutputStream に書き込まれるバイト数。IllegalStateException
- URLConnection がすでに接続されている場合、または別のストリーミングモードがすでに有効になっている場合。IllegalArgumentException
- 0 より小さいコンテンツ長が指定された場合。setChunkedStreamingMode(int)
public void setFixedLengthStreamingMode(long contentLength)
アプリケーションが、指定されたコンテンツ長を超えるデータを書き込もうとしたり、指定された量の書き込みを終える前に OutputStream をクローズしたりすると、例外がスローされます。
出力ストリーム処理を有効にした場合、認証とリダイレクションを自動的に処理することはできません。認証またはリダイレクションが必要とされる場合には、応答の読み取り時に HttpRetryException がスローされます。この例外を調べれば、エラーの詳細がわかります。
このメソッドは、URLConnection の接続前に呼び出してください。
このメソッドを呼び出して設定されたコンテンツの長さは、setFixedLengthStreamingMode(int)
によって設定されたどの値よりも優先されます。
contentLength
- OutputStream に書き込まれるバイト数。IllegalStateException
- URLConnection がすでに接続されている場合、または別のストリーミングモードがすでに有効になっている場合。IllegalArgumentException
- 0 より小さいコンテンツ長が指定された場合。public void setChunkedStreamingMode(int chunklen)
出力ストリーム処理を有効にした場合、認証とリダイレクションを自動的に処理することはできません。認証またはリダイレクションが必要とされる場合には、応答の読み取り時に HttpRetryException がスローされます。この例外を調べれば、エラーの詳細がわかります。
このメソッドは、URLConnection の接続前に呼び出してください。
chunklen
− 各チャンク内に書き込むバイト数。chunklen が 0 以下の場合はデフォルト値が使用される。IllegalStateException
- URLConnection がすでに接続されている場合、または別のストリーミングモードがすでに有効になっている場合。setFixedLengthStreamingMode(int)
public String getHeaderField(int n)
n
番目のヘッダーフィールドの値を返します。実装によっては、0
番目のヘッダーフィールドを特別なものとして、つまり HTTP サーバーから返されたステータス行として扱うことがあります。
このメソッドと getHeaderFieldKey
メソッドを組み合わせて使用すると、メッセージ内のすべてのヘッダーを反復できます。
getHeaderField
、クラス: URLConnection
n
- インデックス。ここで n は 0 以上です。n
番目のヘッダーフィールドの値。値が存在しない場合は null
。getHeaderFieldKey(int)
public static void setFollowRedirects(boolean set)
セキュリティーマネージャーが存在する場合、この操作が許可されるように、このメソッドは最初にセキュリティーマネージャーの checkSetFactory
メソッドを呼び出します。この結果、SecurityException がスローされることがあります。
set
- HTTP リダイレクトに従うかどうかを示す boolean
。SecurityException
- セキュリティーマネージャーが存在し、その checkSetFactory
メソッドでこの操作が許可されていない場合。SecurityManager.checkSetFactory()
, getFollowRedirects()
public static boolean getFollowRedirects()
boolean
を返します。true
、そうでない場合は false。setFollowRedirects(boolean)
public void setInstanceFollowRedirects(boolean followRedirects)
HttpURLConnection
インスタンスで自動的に従うかどうかを設定します。
デフォルトが true である、followRedirects からのデフォルト値。
followRedirects
- HTTP リダイレクトに従うかどうかを示す boolean
。instanceFollowRedirects
, getInstanceFollowRedirects()
public boolean getInstanceFollowRedirects()
HttpURLConnection
の instanceFollowRedirects
フィールドの値を返します。HttpURLConnection
の instanceFollowRedirects
フィールドの値。instanceFollowRedirects
, setInstanceFollowRedirects(boolean)
public void setRequestMethod(String method) throws ProtocolException
method
− HTTP メソッドProtocolException
− メソッドをリセットできない場合、または要求されたメソッドが HTTP で有効でない場合。SecurityException
- セキュリティマネージャーが設定され、メソッドが「TRACE」であるが、「allowHttpTrace」の NetPermission が許可されない場合。getRequestMethod()
public String getRequestMethod()
setRequestMethod(java.lang.String)
public int getResponseCode() throws IOException
HTTP/1.0 200 OK HTTP/1.0 401 Unauthorizedこれは、200 と 401 をそれぞれ返します。応答からコードを認識できない場合 (つまり、その応答が有効な HTTP ではない場合)、-1 を返します。
IOException
- サーバーへの接続でエラーが発生した場合。public String getResponseMessage() throws IOException
HTTP/1.0 200 OK HTTP/1.0 404 Not Found文字列「OK」と「Not Found」をそれぞれ抽出します。応答から何も認識できなかった場合 (結果が有効な HTTP ではなかった場合)、null を返します。
null
IOException
- サーバーへの接続でエラーが発生した場合。public long getHeaderFieldDate(String name, long Default)
URLConnection
この形式の getHeaderField
が存在しているのは、一部の接続タイプ (http-ng
など) が事前に構文解析されたヘッダーを持つからです。そうした接続タイプのクラスは、このメソッドをオーバーライドすることで構文解析を回避することができます。
getHeaderFieldDate
、クラス: URLConnection
name
- ヘッダーフィールドの名前。Default
- デフォルト値。Default
引数の値が返されます。public abstract void disconnect()
public abstract boolean usingProxy()
public Permission getPermission() throws IOException
SocketPermission
オブジェクトを返します。getPermission
、クラス: URLConnection
SocketPermission
オブジェクト。IOException
- アクセス権の処理中にエラーが発生した場合。public InputStream getErrorStream()
このメソッドを呼び出しても、接続は開始されません。接続が確立されなかった場合、接続中にサーバーでエラーが発生しなかった場合、またはサーバーでエラーが発生したがエラーデータは送信されなかった場合には、このメソッドは null を返します。これはデフォルトの設定です。
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.