Foundation 1.1.2

javax.microedition.io
インタフェース HttpConnection

すべてのスーパーインタフェース:
Connection, ContentConnection, InputConnection, OutputConnection, StreamConnection
既知のサブインタフェースの一覧:
HttpsConnection

public interface HttpConnection
extends ContentConnection

このインタフェースは、HTTP 接続に必要なメソッドと定数を定義します。  

HTTP は、要求の送信前に要求のパラメータを設定する必要がある要求応答プロトコルの 1 つです。接続は、次のいずれかの状態になります。

次のメソッドは、Setup 状態でのみ呼び出すことができます。 サーバーとの間でデータを送受信する必要があるメソッドが呼び出されると、Setup 状態から Connected 状態に切り替わります。

次のメソッドは、Setup 状態の接続を Connected 状態に切り替えます。

次のメソッドは、接続が Setup 状態または Connected 状態の間、呼び出すことができます。

openOutputStream メソッドまたは openDataOutputStream メソッドによって出力ストリームがオープンしたあと、setRequestMethod または setRequestProperty を使用して要求パラメータを変更することはできません。要求パラメータの送信後、これらのメソッドは IOException をスローします。 OutputStream.close メソッドまたは DataOutputStream.close メソッドを使用して出力ストリームを閉じると、接続が Connected 状態になります。OutputStream.flush メソッドまたは DataOutputStream.flush メソッドを使用して出力ストリームをフラッシュするときは、ストリームに書き込まれたデータとともに要求パラメータを送信する必要があります。

close メソッドを呼び出すと、任意の状態から Closed 状態に切り替えることができます。同時に、その接続からオープンしたすべてのストリームがクローズします。  

StreamConnection の使用例  

StreamConnection を使用した単純な URL の読み取りです。HTTP 固有の動作は不要か、使用しません。(注: この例では、HTTP 応答ヘッダーと HTTP 応答コードがすべて無視されます。プロキシまたはサーバーがエラー応答ページを送信した場合、アプリケーションは InputStream で取得されたデータを識別できません。

URL のオープンには、Connector.open を使用します。結果としては、StreamConnection が返されます。StreamConnection から InputStream がオープンします。これを使用して、ファイルの終わり (-1) までのすべての文字が読み取られます。例外がスローされた場合、接続は終了し、ストリームもクローズします。  

     void getViaStreamConnection(String url) throws IOException {
         StreamConnection c = null;
         InputStream s = null;
         try {
             c = (StreamConnection)Connector.open(url);
             s = c.openInputStream();
             int ch;
             while ((ch = s.read()) != -1) {
                 ...
             }
         } finally {
             if (s != null)
                 s.close();
             if (c != null)
                 c.close();
         }
     }
 

ContentConnection の使用例  

ContentConnection を使用した単純な URL の読み取りです。HTTP 固有の動作は不要か、使用しません。  

URL のオープンには、Connector.open を使用します。結果としては、ContentConnection が返されます。ContentConnection で長さが表示される場合があります。長さが指定された場合、データの一括読み取りが可能になります。ContentConnection から InputStream がオープンします。これを使用して、ファイルの終わり (-1) までのすべての文字が読み取られます。例外がスローされた場合、接続は終了し、ストリームもクローズします。  

     void getViaContentConnection(String url) throws IOException {
         ContentConnection c = null;
         DataInputStream is = null;
         try {
             c = (ContentConnection)Connector.open(url);
             int len = (int)c.getLength();
             dis = c.openDataInputStream();
             if (len > 0) {
                 byte[] data = new byte[len];
                 dis.readFully(data);
             } else {
                 int ch;
                 while ((ch = dis.read()) != -1) {
                     ...
                 }
             }
         } finally {
             if (dis != null)
                 dis.close();
             if (c != null)
                 c.close();
         }
     }
 

HttpConnection の使用例  

HttpConnection を使用して、HTTP ヘッダーとデータを読み取ります。  

URL のオープンには、Connector.open を使用します。結果としては、HttpConnection が返されます。HTTP ヘッダーが読み取られ、処理されます。長さが指定された場合、データの一括読み取りが可能になります。HttpConnection から InputStream がオープンします。これを使用して、ファイルの終わり (-1) までのすべての文字が読み取られます。例外がスローされた場合、接続は終了し、ストリームもクローズします。

     void getViaHttpConnection(String url) throws IOException {
         HttpConnection c = null;
         InputStream is = null;
         int rc;

         try {
             c = (HttpConnection)Connector.open(url);

             // 応答コードを取得すると接続が開始されて、
             // 要求が送信され、HTTP 応答ヘッダーが読み取られる。
             // ヘッダーは要求があるまで保管される。
             rc = c.getResponseCode();
             if (rc != HttpConnection.HTTP_OK) {
                 throw new IOException("HTTP response code: " + rc);
             }

             is = c.openInputStream();

             // ContentType を取得
             String type = c.getType();

             // 長さを取得し、データを処理
             int len = (int)c.getLength();
             if (len > 0) {
                 int actual = 0;
                 int bytesread = 0 ;
                 byte[] data = new byte[len];
                 while ((bytesread != len) && (actual != -1)) {
                    actual = is.read(data, bytesread, len - bytesread);
                    bytesread += actual;
                 }
             } else {
                 int ch;
                 while ((ch = is.read()) != -1) {
                     ...
                 }
             }
         } catch (ClassCastException e) {
             throw new IllegalArgumentException("Not an HTTP URL");
         } finally {
             if (is != null)
                 is.close();
             if (c != null)
                 c.close();
         }
     }
 

POST と HttpConnection の使用例  

ヘッダーとコンテンツを持つ要求をサーバーに送信し、そのヘッダーおよびコンテンツを処理します。  

URL のオープンには、Connector.open を使用します。結果としては、HttpConnection が返されます。要求メソッドが POST に設定され、要求ヘッダーが設定されます。単純なコマンドが書き込まれ、フラッシュされます。HTTP ヘッダーが読み取られ、処理されます。長さが指定された場合、データの一括読み取りが可能になります。HttpConnection から InputStream がオープンします。これを使用して、ファイルの終わり (-1) までのすべての文字が読み取られます。例外がスローされた場合、接続は終了し、ストリームもクローズします。  

    void postViaHttpConnection(String url) throws IOException {
        HttpConnection c = null;
        InputStream is = null;
        OutputStream os = null;
        int rc;

        try {
            c = (HttpConnection)Connector.open(url);

            // 要求メソッドとヘッダーを設定
            c.setRequestMethod(HttpConnection.POST);
            c.setRequestProperty("If-Modified-Since",
                "29 Oct 1999 19:43:31 GMT");
            c.setRequestProperty("User-Agent",
                "Profile/MIDP-2.0 Configuration/CLDC-1.0");
            c.setRequestProperty("Content-Language", "en-US");

            // 出力ストリームを取得すると、ヘッダーがフラッシュされる場合がある
            os = c.openOutputStream();
            os.write("LIST games\n".getBytes());
            os.flush();           // Optional, getResponseCode will flush

            // 応答コードを取得すると接続が開始されて、
            // 要求が送信され、HTTP 応答ヘッダーが読み取られる。
            // ヘッダーは要求があるまで保管される。
            rc = c.getResponseCode();
            if (rc != HttpConnection.HTTP_OK) {
                throw new IOException("HTTP response code: " + rc);
            }

            is = c.openInputStream();

            // ContentType を取得
            String type = c.getType();
            processType(type);

            // 長さを取得し、データを処理
            int len = (int)c.getLength();
            if (len > 0) {
                 int actual = 0;
                 int bytesread = 0 ;
                 byte[] data = new byte[len];
                 while ((bytesread != len) && (actual != -1)) {
                    actual = is.read(data, bytesread, len - bytesread);
                    bytesread += actual;
                 }
                process(data);
            } else {
                int ch;
                while ((ch = is.read()) != -1) {
                    process((byte)ch);
                }
            }
        } catch (ClassCastException e) {
            throw new IllegalArgumentException("Not an HTTP URL");
        } finally {
            if (is != null)
                is.close();
            if (os != null)
                os.close();
            if (c != null)
                c.close();
        }
    }
 

コネクタの簡易ストリームメソッド  

次の点に注意してください。Connector クラスは、指定の URL から直接入力または出力ストリームを取得する、次の簡易メソッドを定義します。

これらのメソッドを使用する場合は、一定の制限があります。たとえば、実際の接続の参照を取得する代わりに、単に接続の入力ストリームまたは出力ストリームの参照を取得します。接続の参照がない場合に、接続を直接操作または照会することはできません。つまりこれは、次のメソッドを呼び出せないということです。

導入されたバージョン:
MIDP 1.0

フィールドの概要
static String GET
          HTTP Get メソッドです。
static String HEAD
          HTTP Head メソッドです。
static int HTTP_ACCEPTED
          202: 処理要求が受け付けられましたが、処理はまだ完了していません。
static int HTTP_BAD_GATEWAY
          502: サーバーがゲートウェイまたはプロキシとして機能しているとき、要求を処理するためにアクセスした上流のサーバーから不正な応答を受け取りました。
static int HTTP_BAD_METHOD
          405: Request-URI のリソースでは、Request-Line に指定されたメソッドが許可されません。
static int HTTP_BAD_REQUEST
          400: 要求の構文が正しくないため、サーバーはこの要求を理解できませんでした。
static int HTTP_CLIENT_TIMEOUT
          408: サーバーの所定の待ち時間内に、クライアントが要求を生成しませんでした。
static int HTTP_CONFLICT
          409: 現在のリソースの状態に矛盾があるため、要求を完了できませんでした。
static int HTTP_CREATED
          201: 要求が処理され、新しいリソースが作成されました。
static int HTTP_ENTITY_TOO_LARGE
          413: 要求エンティティーが大きすぎて処理できないため、サーバーは要求の処理を拒否しています。
static int HTTP_EXPECT_FAILED
          417: サーバーが Expect 要求ヘッダーフィールド内に指定された条件を満たすことができない場合や、プロキシサーバーである場合、このサーバーは、「次のホップのサーバーが要求を満たすことができない」という曖昧な情報を返します。
static int HTTP_FORBIDDEN
          403: サーバーは要求を理解しましたが、要求の実行を拒否しています。
static int HTTP_GATEWAY_TIMEOUT
          504: サーバーがゲートウェイまたはプロキシとして機能しているとき、要求を処理するためにアクセスした上流のサーバー (URI で指定) またはその他の必要な補助サーバーから、所定の時間内に応答を受け取ることができませんでした。
static int HTTP_GONE
          410: 要求されたリソースはすでにサーバー上になく、転送先アドレスも不明です。
static int HTTP_INTERNAL_ERROR
          500: サーバーが予期しなかった条件を検出したため、要求を処理できませんでした。
static int HTTP_LENGTH_REQUIRED
          411: サーバーは、定義済みの Content-Length がない要求の受け付けを拒否します。
static int HTTP_MOVED_PERM
          301: 要求されたリソースに新しい永続 URI が割り当てられたので、今後このリソースを参照するときは返されたいずれかの URI を使用する必要があります。
static int HTTP_MOVED_TEMP
          302: 要求されたリソースの URI が一時的に変更されています。
static int HTTP_MULT_CHOICE
          300: 要求されたリソースは固有の場所を持つ任意の表現セットの 1 つに対応しており、エージェント駆動型のネゴシエーション情報が提供されているため、ユーザー (またはユーザーエージェント) はより望ましい表現を選択し、その要求を所定の場所にリダイレクトできます。
static int HTTP_NO_CONTENT
          204: サーバーが要求処理を完了しましたが、エンティティー本体を返す必要はなく、更新済みのメタ情報を返すことができます。
static int HTTP_NOT_ACCEPTABLE
          406: 要求されているリソースは、要求とともに送信された受け入れヘッダーで受け付け不可になっているコンテンツ特性を持つ応答エンティティーを生成できるだけです。
static int HTTP_NOT_AUTHORITATIVE
          203: エンティティーヘッダー内に返されたメタ情報は、元のサーバーから得られる完全なセットではありません。
static int HTTP_NOT_FOUND
          404: サーバーは要求 URI に一致する内容を検出できませんでした。
static int HTTP_NOT_IMPLEMENTED
          501: サーバーは要求を処理するために必要な機能をサポートしていません。
static int HTTP_NOT_MODIFIED
          304: クライアントが条件付きの GET 要求を行い、アクセスを許可された場合でも、ドキュメントが変更されていないと、サーバーは応答としてこの状態コードを返します。
static int HTTP_OK
          200: 要求が正常に実行されました。
static int HTTP_PARTIAL
          206: サーバーはリソースの GET 要求を部分的に完了しました。
static int HTTP_PAYMENT_REQUIRED
          402: このコードは将来使用できるように予約されています。
static int HTTP_PRECON_FAILED
          412: 前提条件が、サーバー上のテストで false と評価された 1 つ以上の要求ヘッダーフィールド内に指定されています。
static int HTTP_PROXY_AUTH
          407: このコードは 401 (承認されていない) と似ていますが、クライアント側が最初にプロキシに対して自身の認証情報を提示する必要があります。
static int HTTP_REQ_TOO_LONG
          414: Request-URI が長すぎて解釈できないため、サーバーは要求の処理を拒否しています。
static int HTTP_RESET
          205: サーバーが要求処理を完了したため、ユーザーエージェントは要求の送信元のドキュメントビューをリセットする必要があります。
static int HTTP_SEE_OTHER
          303: 要求に対する応答の URI が変更されているので、GET メソッドを使用してそのリソース上の応答を取得する必要があります。
static int HTTP_TEMP_REDIRECT
          307: 要求されたリソースの URI が一時的に変更されています。
static int HTTP_UNAUTHORIZED
          401: この要求にはユーザー認証が必要です。
static int HTTP_UNAVAILABLE
          503: サーバーの一時的な過負荷またはメンテナンスのために、サーバーは現在要求を処理することができません。
static int HTTP_UNSUPPORTED_RANGE
          416: 要求に Range 要求ヘッダーフィールドが含まれているのに、このフィールド内の range-specifier 値がどれも現在選択されているリソースの範囲と重ならず、要求に If-Range 要求ヘッダーフィールドが含まれていない場合、サーバーはこの状態コードを含む応答を返します。
static int HTTP_UNSUPPORTED_TYPE
          415: 要求のエンティティーの形式が要求されたメソッドの要求されたリソースでサポートされていないため、サーバーは要求の処理を拒否しています。
static int HTTP_USE_PROXY
          305: 要求されたリソースには、Location フィールドに指定されたプロキシを使用してアクセスする必要があります。
static int HTTP_VERSION
          505: サーバーは、要求メッセージ内で使用されている HTTP プロトコルのバージョンをサポートしていないか、サポートを拒否しています。
static String POST
          HTTP Post メソッドです。
 
メソッドの概要
 long getDate()
          date ヘッダーフィールドの値を返します。
 long getExpiration()
          expires ヘッダーフィールドの値を返します。
 String getFile()
          この HttpConnection の URL のファイル部分を返します。
 String getHeaderField(int n)
          インデックスによりヘッダーフィールド値を取得します。
 String getHeaderField(String name)
          指定されたヘッダーフィールドの値を返します。
 long getHeaderFieldDate(String name, long def)
          指定されたフィールドを日付として構文解析した値を返します。
 int getHeaderFieldInt(String name, int def)
          指定されたフィールドを数値として構文解析した値を返します。
 String getHeaderFieldKey(int n)
          インデックスによりヘッダーフィールドキーを取得します。
 String getHost()
          この HttpConnection の URL のホスト情報 (ホスト名または IPv4 アドレス) を返します。
 long getLastModified()
          last-modified ヘッダーフィールドの値を返します。
 int getPort()
          この HttpConnection の URL のネットワークポート番号を返します。
 String getProtocol()
          この HttpConnection の URL のプロトコル名 (http または https) を返します。
 String getQuery()
          この HttpConnection の URL のクエリー部分を返します。
 String getRef()
          この HttpConnection の URL の参照部分を返します。
 String getRequestMethod()
          現在の要求メソッド (HEAD、GET、POST) を取得します。
 String getRequestProperty(String key)
          この接続の指定された一般要求プロパティーの値を返します。
 int getResponseCode()
          HTTP 応答状態コードを返します。
 String getResponseMessage()
          サーバーから応答コードとともに HTTP 応答メッセージが返された場合、そのメッセージを取得します。
 String getURL()
          この接続の URL の文字列表現を返します。
 void setRequestMethod(String method)
          URL 要求のメソッドを次のどれかに設定します。
 void setRequestProperty(String key, String value)
          一般要求プロパティーを設定します。
 
インタフェース javax.microedition.io.ContentConnection から継承されたメソッド
getEncoding, getLength, getType
 
インタフェース javax.microedition.io.InputConnection から継承されたメソッド
openDataInputStream, openInputStream
 
インタフェース javax.microedition.io.Connection から継承されたメソッド
close
 
インタフェース javax.microedition.io.OutputConnection から継承されたメソッド
openDataOutputStream, openOutputStream
インタフェース javax.microedition.io.Connection から継承されたメソッド
close
-->  

フィールドの詳細

HEAD

static final String HEAD
HTTP Head メソッドです。

関連項目:
定数フィールド値

GET

static final String GET
HTTP Get メソッドです。

関連項目:
定数フィールド値

POST

static final String POST
HTTP Post メソッドです。

関連項目:
定数フィールド値

HTTP_OK

static final int HTTP_OK
200: 要求が正常に実行されました。

関連項目:
定数フィールド値

HTTP_CREATED

static final int HTTP_CREATED
201: 要求が処理され、新しいリソースが作成されました。

関連項目:
定数フィールド値

HTTP_ACCEPTED

static final int HTTP_ACCEPTED
202: 処理要求が受け付けられましたが、処理はまだ完了していません。

関連項目:
定数フィールド値

HTTP_NOT_AUTHORITATIVE

static final int HTTP_NOT_AUTHORITATIVE
203: エンティティーヘッダー内に返されたメタ情報は、元のサーバーから得られる完全なセットではありません。

関連項目:
定数フィールド値

HTTP_NO_CONTENT

static final int HTTP_NO_CONTENT
204: サーバーが要求処理を完了しましたが、エンティティー本体を返す必要はなく、更新済みのメタ情報を返すことができます。

関連項目:
定数フィールド値

HTTP_RESET

static final int HTTP_RESET
205: サーバーが要求処理を完了したため、ユーザーエージェントは要求の送信元のドキュメントビューをリセットする必要があります。

関連項目:
定数フィールド値

HTTP_PARTIAL

static final int HTTP_PARTIAL
206: サーバーはリソースの GET 要求を部分的に完了しました。

関連項目:
定数フィールド値

HTTP_MULT_CHOICE

static final int HTTP_MULT_CHOICE
300: 要求されたリソースは固有の場所を持つ任意の表現セットの 1 つに対応しており、エージェント駆動型のネゴシエーション情報が提供されているため、ユーザー (またはユーザーエージェント) はより望ましい表現を選択し、その要求を所定の場所にリダイレクトできます。

関連項目:
定数フィールド値

HTTP_MOVED_PERM

static final int HTTP_MOVED_PERM
301: 要求されたリソースに新しい永続 URI が割り当てられたので、今後このリソースを参照するときは返されたいずれかの URI を使用する必要があります。

関連項目:
定数フィールド値

HTTP_MOVED_TEMP

static final int HTTP_MOVED_TEMP
302: 要求されたリソースの URI が一時的に変更されています。(注: この状態コードの名前には、以前に発表された RFC 2068 の内容が反映されています。RFC 2068 で「moved temporalily (一時的に変更)」だった部分は RFC 2616 で「found」に変更されていますが、意味は変わっていません。Location ヘッダーは、アプリケーションによる要求の再送信先を示します。

関連項目:
定数フィールド値

HTTP_SEE_OTHER

static final int HTTP_SEE_OTHER
303: 要求に対する応答の URI が変更されているので、GET メソッドを使用してそのリソース上の応答を取得する必要があります。

関連項目:
定数フィールド値

HTTP_NOT_MODIFIED

static final int HTTP_NOT_MODIFIED
304: クライアントが条件付きの GET 要求を行い、アクセスを許可された場合でも、ドキュメントが変更されていないと、サーバーは応答としてこの状態コードを返します。

関連項目:
定数フィールド値

HTTP_USE_PROXY

static final int HTTP_USE_PROXY
305: 要求されたリソースには、Location フィールドに指定されたプロキシを使用してアクセスする必要があります。

関連項目:
定数フィールド値

HTTP_TEMP_REDIRECT

static final int HTTP_TEMP_REDIRECT
307: 要求されたリソースの URI が一時的に変更されています。

関連項目:
定数フィールド値

HTTP_BAD_REQUEST

static final int HTTP_BAD_REQUEST
400: 要求の構文が正しくないため、サーバーはこの要求を理解できませんでした。

関連項目:
定数フィールド値

HTTP_UNAUTHORIZED

static final int HTTP_UNAUTHORIZED
401: この要求にはユーザー認証が必要です。応答には、要求されたリソースに対するチャレンジを含む WWW 認証ヘッダーフィールドが含まれている必要があります。

関連項目:
定数フィールド値

HTTP_PAYMENT_REQUIRED

static final int HTTP_PAYMENT_REQUIRED
402: このコードは将来使用できるように予約されています。

関連項目:
定数フィールド値

HTTP_FORBIDDEN

static final int HTTP_FORBIDDEN
403: サーバーは要求を理解しましたが、要求の実行を拒否しています。承認の効果がないので、要求を繰り返してはいけません。

関連項目:
定数フィールド値

HTTP_NOT_FOUND

static final int HTTP_NOT_FOUND
404: サーバーは要求 URI に一致する内容を検出できませんでした。条件が一時的なものか永続的なものかが指定されていません。

関連項目:
定数フィールド値

HTTP_BAD_METHOD

static final int HTTP_BAD_METHOD
405: Request-URI のリソースでは、Request-Line に指定されたメソッドが許可されません。

関連項目:
定数フィールド値

HTTP_NOT_ACCEPTABLE

static final int HTTP_NOT_ACCEPTABLE
406: 要求されているリソースは、要求とともに送信された受け入れヘッダーで受け付け不可になっているコンテンツ特性を持つ応答エンティティーを生成できるだけです。

関連項目:
定数フィールド値

HTTP_PROXY_AUTH

static final int HTTP_PROXY_AUTH
407: このコードは 401 (承認されていない) と似ていますが、クライアント側が最初にプロキシに対して自身の認証情報を提示する必要があります。

関連項目:
定数フィールド値

HTTP_CLIENT_TIMEOUT

static final int HTTP_CLIENT_TIMEOUT
408: サーバーの所定の待ち時間内に、クライアントが要求を生成しませんでした。クライアントはこの要求の内容を変更せずに、あとで再実行できます。

関連項目:
定数フィールド値

HTTP_CONFLICT

static final int HTTP_CONFLICT
409: 現在のリソースの状態に矛盾があるため、要求を完了できませんでした。

関連項目:
定数フィールド値

HTTP_GONE

static final int HTTP_GONE
410: 要求されたリソースはすでにサーバー上になく、転送先アドレスも不明です。

関連項目:
定数フィールド値

HTTP_LENGTH_REQUIRED

static final int HTTP_LENGTH_REQUIRED
411: サーバーは、定義済みの Content-Length がない要求の受け付けを拒否します。

関連項目:
定数フィールド値

HTTP_PRECON_FAILED

static final int HTTP_PRECON_FAILED
412: 前提条件が、サーバー上のテストで false と評価された 1 つ以上の要求ヘッダーフィールド内に指定されています。

関連項目:
定数フィールド値

HTTP_ENTITY_TOO_LARGE

static final int HTTP_ENTITY_TOO_LARGE
413: 要求エンティティーが大きすぎて処理できないため、サーバーは要求の処理を拒否しています。

関連項目:
定数フィールド値

HTTP_REQ_TOO_LONG

static final int HTTP_REQ_TOO_LONG
414: Request-URI が長すぎて解釈できないため、サーバーは要求の処理を拒否しています。

関連項目:
定数フィールド値

HTTP_UNSUPPORTED_TYPE

static final int HTTP_UNSUPPORTED_TYPE
415: 要求のエンティティーの形式が要求されたメソッドの要求されたリソースでサポートされていないため、サーバーは要求の処理を拒否しています。

関連項目:
定数フィールド値

HTTP_UNSUPPORTED_RANGE

static final int HTTP_UNSUPPORTED_RANGE
416: 要求に Range 要求ヘッダーフィールドが含まれているのに、このフィールド内の range-specifier 値がどれも現在選択されているリソースの範囲と重ならず、要求に If-Range 要求ヘッダーフィールドが含まれていない場合、サーバーはこの状態コードを含む応答を返します。

関連項目:
定数フィールド値

HTTP_EXPECT_FAILED

static final int HTTP_EXPECT_FAILED
417: サーバーが Expect 要求ヘッダーフィールド内に指定された条件を満たすことができない場合や、プロキシサーバーである場合、このサーバーは、「次のホップのサーバーが要求を満たすことができない」という曖昧な情報を返します。

関連項目:
定数フィールド値

HTTP_INTERNAL_ERROR

static final int HTTP_INTERNAL_ERROR
500: サーバーが予期しなかった条件を検出したため、要求を処理できませんでした。

関連項目:
定数フィールド値

HTTP_NOT_IMPLEMENTED

static final int HTTP_NOT_IMPLEMENTED
501: サーバーは要求を処理するために必要な機能をサポートしていません。

関連項目:
定数フィールド値

HTTP_BAD_GATEWAY

static final int HTTP_BAD_GATEWAY
502: サーバーがゲートウェイまたはプロキシとして機能しているとき、要求を処理するためにアクセスした上流のサーバーから不正な応答を受け取りました。

関連項目:
定数フィールド値

HTTP_UNAVAILABLE

static final int HTTP_UNAVAILABLE
503: サーバーの一時的な過負荷またはメンテナンスのために、サーバーは現在要求を処理することができません。

関連項目:
定数フィールド値

HTTP_GATEWAY_TIMEOUT

static final int HTTP_GATEWAY_TIMEOUT
504: サーバーがゲートウェイまたはプロキシとして機能しているとき、要求を処理するためにアクセスした上流のサーバー (URI で指定) またはその他の必要な補助サーバーから、所定の時間内に応答を受け取ることができませんでした。

関連項目:
定数フィールド値

HTTP_VERSION

static final int HTTP_VERSION
505: サーバーは、要求メッセージ内で使用されている HTTP プロトコルのバージョンをサポートしていないか、サポートを拒否しています。

関連項目:
定数フィールド値
メソッドの詳細

getURL

String getURL()
この接続の URL の文字列表現を返します。

戻り値:
この接続の URL の文字列表現

getProtocol

String getProtocol()
この HttpConnection の URL のプロトコル名 (http または https) を返します。

戻り値:
この HttpConnection の URL のプロトコル

getHost

String getHost()
この HttpConnection の URL のホスト情報 (ホスト名または IPv4 アドレス) を返します。

戻り値:
この HttpConnection の URL のホスト情報

getFile

String getFile()
この HttpConnection の URL のファイル部分を返します。

戻り値:
この HttpConnection の URL のファイル部分。 ファイルが存在しない場合は null

getRef

String getRef()
この HttpConnection の URL の参照部分を返します。RFC 2396 によると、URL 内のシャープ記号 (#) の後ろのテキスト部分がオプションのフラグメント識別子になります。ユーザーエージェントは、この情報を、リソースを正常に取得したあとの補足参照情報として使用できます。フラグメント識別子の形式と解釈は、取得した情報のメディアの種類 (RFC 2046) によって異なります。

戻り値:
この HttpConnection の URL の参照部分。 値が存在しない場合は null

getQuery

String getQuery()
この HttpConnection の URL のクエリー部分を返します。 RFC 2396 によると、URL 内の最初の疑問符 (?) の後ろのテキスト部分がクエリーコンポーネントになります。

戻り値:
この HttpConnection の URL のクエリー部分。 値が存在しない場合は null

getPort

int getPort()
この HttpConnection の URL のネットワークポート番号を返します。

戻り値:
この HttpConnection の URL のネットワークポート番号。 Connector.open に渡された文字列にポート番号が含まれていない場合は、デフォルトの HTTP ポート番号 80

getRequestMethod

String getRequestMethod()
現在の要求メソッド (HEAD、GET、POST) を取得します。デフォルトの値は GET です。

戻り値:
HTTP 要求メソッド
関連項目:
setRequestMethod(java.lang.String)

setRequestMethod

void setRequestMethod(String method)
                      throws IOException
URL 要求のメソッドを次のどれかに設定します。 これらのメソッドのうち、どれが有効であるかはプロトコルの制限によって決まります。デフォルトのメソッドは GET です。

パラメータ:
method - HTTP メソッド
例外:
IOException - メソッドをリセットできない場合、または要求されたメソッドが HTTP で有効でない場合
関連項目:
getRequestMethod()

getRequestProperty

String getRequestProperty(String key)
この接続の指定された一般要求プロパティーの値を返します。

パラメータ:
key - 要求プロパティーを示すキーワード (「accept」など)
戻り値:
この接続の指定された一般要求プロパティーの値。 指定された名前を持つキーが存在しない場合は null
関連項目:
setRequestProperty(java.lang.String, java.lang.String)

setRequestProperty

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

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

パラメータ:
key - 要求を識別するキーワード (「accept」など)
value - キーワードに関連した値
例外:
IOException - 接続が Connected 状態の場合にスローされる
関連項目:
getRequestProperty(java.lang.String)

getResponseCode

int getResponseCode()
                    throws IOException
HTTP 応答状態コードを返します。応答は次のように解析されます。
HTTP/1.0 200 OK
HTTP/1.0 401 Unauthorized
 
応答が有効な HTTP でない場合、それぞれ整数コード 200 と 401 が返されます。

戻り値:
HTTP 状態コード。状態コードを認識できない場合は -1
例外:
IOException - サーバーへの接続でエラーが発生した場合

getResponseMessage

String getResponseMessage()
                          throws IOException
サーバーから応答コードとともに HTTP 応答メッセージが返された場合、そのメッセージを取得します。次のような応答があったとします。
HTTP/1.0 200 OK
HTTP/1.0 404 Not Found
 
文字列「OK」と「Not Found」をそれぞれ抽出します。応答から何も認識できなかった場合 (結果が有効な HTTP ではなかった場合)、null を返します。

戻り値:
HTTP 応答メッセージまたは null
例外:
IOException - サーバーへの接続でエラーが発生した場合

getExpiration

long getExpiration()
                   throws IOException
expires ヘッダーフィールドの値を返します。

戻り値:
この URL が参照するリソースの有効期限日。不明の場合は 0。 この値は、1970 年 1 月 1 日 GMT からのミリ秒数
例外:
IOException - サーバーへの接続でエラーが発生した場合

getDate

long getDate()
             throws IOException
date ヘッダーフィールドの値を返します。

戻り値:
URL が参照するリソースの送信日。不明の場合は 0。 戻り値は、1970 年 1 月 1 日 GMT からのミリ秒数
例外:
IOException - サーバーへの接続でエラーが発生した場合

getLastModified

long getLastModified()
                     throws IOException
last-modified ヘッダーフィールドの値を返します。結果は、1970 年 1 月 1 日 GMT からのミリ秒数です。

戻り値:
この HttpConnection が参照するリソースが最後に変更された日付。不明の場合は 0
例外:
IOException - サーバーへの接続でエラーが発生した場合

getHeaderField

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

パラメータ:
name - ヘッダーフィールドの名前
戻り値:
指定されたヘッダーフィールドの値。指定された名前を持つフィールドがヘッダー内にない場合は null
例外:
IOException - サーバーへの接続でエラーが発生した場合

getHeaderFieldInt

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

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

パラメータ:
name - ヘッダーフィールドの名前
def - デフォルト値
戻り値:
整数として解析される、指定されたフィールドの値。フィールドが見つからないか形式が不正である場合には、def
例外:
IOException - サーバーへの接続でエラーが発生した場合

getHeaderFieldDate

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

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

パラメータ:
name - ヘッダーフィールドの名前
def - デフォルト値
戻り値:
フィールドの値を日付として構文解析したもの。フィールドが見つからないか形式が不正である場合には、def 引数の値
例外:
IOException - サーバーへの接続でエラーが発生した場合

getHeaderField

String getHeaderField(int n)
                      throws IOException
インデックスによりヘッダーフィールド値を取得します。

パラメータ:
n - ヘッダーフィールドのインデックス
戻り値:
n 番目のヘッダーフィールドの値。配列インデックスが範囲外の場合は null。 フィールド値がない場合は空の String
例外:
IOException - サーバーへの接続でエラーが発生した場合

getHeaderFieldKey

String getHeaderFieldKey(int n)
                         throws IOException
インデックスによりヘッダーフィールドキーを取得します。

パラメータ:
n - ヘッダーフィールドのインデックス
戻り値:
n 番目のヘッダーフィールドのキー。配列インデックスが範囲外の場合は null
例外:
IOException - サーバーへの接続でエラーが発生した場合

Foundation 1.1.2

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。