|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface HttpConnection
このインタフェースは HTTP 接続で必要になるメソッドおよび定数を定義するインタフェースです。
HTTP はリクエストを送信する際にリクエスト・パラメータを同時に送信するリクエスト - レスポンス型のプロトコルです。 HTTP 接続オブジェクトは以下の3つの状態のうち、いずれかの状態にあります。
IOException
を throw します。
以下のメソッドはセットアップ状態でのみ呼び出すことができます。
セットアップ状態から接続状態への遷移は、データを送るように要求する全てのメソッドによって引き起こされ、サーバーからデータを受け取ります。
接続状態への遷移を引き起こすメソッドは以下の通りです。
InputConnection.openInputStream()
OutputConnection.openOutputStream()
InputConnection.openDataInputStream()
OutputConnection.openDataOutputStream()
ContentConnection.getLength()
ContentConnection.getType()
ContentConnection.getEncoding()
getHeaderField(java.lang.String)
getResponseCode()
getHeaderFieldInt(java.lang.String, int)
getHeaderFieldDate(java.lang.String, long)
getExpiration()
getDate()
getLastModified()
getHeaderField(java.lang.String)
getHeaderFieldKey(int)
接続がオープンされている状態(クローズ状態以外の状態)において、以下のメソッドを呼び出すことができます。
Connection.close()
getRequestMethod()
getRequestProperty(java.lang.String)
getURL()
getProtocol()
getHost()
getFile()
getRef()
getPort()
getQuery()
StreamConnection
の使用例
StreamConnection
を使用したシンプルな URL からの読み出しです。
HTTP 特有の振る舞いは必要としないか使用しません。
URL をオープンするために Connector.open
を使用します。
この結果 StreamConnection
を返します。
この StreamConnection
から InputStream
をオープンします。
InputStream
を使用してファイルの終端 (-1
が返されるまで ) 全ての文字を読み出します。
例外が throw された場合、Connection
および Stream
をクローズします。
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
をオープンします。
InputStream
を使用してファイルの終端 (-1
が返されるまで ) 全ての文字を読み出します。
例外が throw された場合、Connection
および Stream
をクローズします。
void getViaContentConnection(String url) throws IOException { ContentConnection c = null; InputStream is = null; try { c = (ContentConnection)Connector.open(url); int len = (int)c.getLength(); if (len > 0) { is = c.openInputStream(); byte[] data = new byte[len]; int actual = is.read(data); ... } else { int ch; while ((ch = is.read()) != -1) { ... } } } finally { if (is != null) is.close(); if (c != null) c.close(); } }
HttpConnection
の使用例
HttpConnection
を使用し、HTTP ヘッダおよびデータを読み出します。
URL をオープンするために Connector.open
を使用します。
この結果 ContentConnection
を返します。
HTTP ヘッダを読み出して処理します。
長さが提供される場合、それは保持するデータを読むために使用することができます。
この HttpConnection
から InputStream
をオープンします。
InputStream
を使用してファイルの終端 (-1
が返されるまで ) 全ての文字を読み出します。
例外が throw された場合、Connection
および Stream
をクローズします。
void getViaHttpConnection(String url) throws IOException { HttpConnection c = null; InputStream is = null; try { c = (HttpConnection)Connector.open(url); // InputSream を取得すると、接続を開き HTTP ヘッダを取得します。 // これらは要求があるまで格納されます。 is = c.openInputStream(); // Content-Type を取得します。 String type = c.getType(); // 処理対象データの長さを取得します。 int len = (int)c.getLength(); if (len > 0) { byte[] data = new byte[len]; int actual = is.read(data); ... } else { int ch; while ((ch = is.read()) != -1) { ... } } } finally { if (is != null) is.close(); if (c != null) c.close(); } }
HttpConnection
による POST の使用例
サーバーへいくつかのヘッダと内容をリクエストにて送信し、レスポンスとして返されたヘッダおよび内容を処理します。
URL をオープンするために Connector.open
を使用します。
この結果 ContentConnection
を返します。
リクエスト・メソッドを使用して POST およびリクエストヘッダをセットします。
簡単なコマンドを書き込んでフラッシュします。
HTTP ヘッダを読み出して処理します。
長さが提供される場合、それは保持するデータを読むために使用することができます。
この HttpConnection
から InputStream
をオープンします。
InputStream
を使用してファイルの終端 (-1
が返されるまで ) 全ての文字を読み出します。
例外が throw された場合、Connection
および Stream
をクローズします。
void postViaHttpConnection(String url) throws IOException { HttpConnection c = null; InputStream is = null; OutputStream os = null; 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"); // OutputStream を経由してヘッダを書き込んでフラッシュします。 os = c.openOutputStream(); os.write("LIST games\n".getBytes()); os.flush(); // InputStream をオープンすると接続を開いて HTTP ヘッダを読みます。 // それらは要求があるまで蓄えられます。 is = c.openInputStream(); // Content-Type を取得します。 String type = c.getType(); processType(type); // 長さとデータを取得して処理します。 int len = (int)c.getLength(); if (len > 0) { byte[] data = new byte[len]; int actual = is.read(data); process(data); } else { int ch; while ((ch = is.read()) != -1) { process((byte)ch); } } } finally { if (is != null) is.close(); if (os != null) os.close(); if (c != null) c.close(); } }
Connector
における単純化された Stream
オープン・メソッド
Connector
クラスは以下に示す、指定された URL から入力あるいは出力するための Stream
を直接生成するメソッドを提供しています。
InputStream
openInputStream(String url)
DataInputStream
openDataInputStream(String url)
OutputStream
openOutputStream(String url)
DataOutputStream
openDataOutputStream(String url)
これらのメソッドを使用することで一部機能に制限が生じることを理解しておく必要があります。
これらのメソッドは直接 Stream
を生成するため、実際の Connection
を得る手段が提供されません。
このため Connection
へのアクセスを必要とする以下のメソッドは一切呼び出すことができません。
getRequestMethod()
setRequestMethod(java.lang.String)
getRequestProperty(java.lang.String)
setRequestProperty(java.lang.String, java.lang.String)
ContentConnection.getLength()
ContentConnection.getType()
ContentConnection.getEncoding()
getHeaderField(java.lang.String)
getResponseCode()
getResponseMessage()
getHeaderFieldInt(java.lang.String, int)
getHeaderFieldDate(java.lang.String, long)
getExpiration()
getDate()
getLastModified()
getHeaderField(java.lang.String)
getHeaderFieldKey(int)
フィールドの概要 | |
---|---|
static String |
GET
GET メソッドを示す定数( ="GET" )です。 |
static String |
HEAD
HEAD メソッドを示す定数( ="HEAD" )です。 |
static int |
HTTP_ACCEPTED
HTTP ステータス・コード ( 202 ) の比較用定数です。 |
static int |
HTTP_BAD_GATEWAY
HTTP ステータス・コード ( 502 ) の比較用定数です。 |
static int |
HTTP_BAD_METHOD
HTTP ステータス・コード ( 405 ) の比較用定数です。 |
static int |
HTTP_BAD_REQUEST
HTTP ステータス・コード ( 400 ) の比較用定数です。 |
static int |
HTTP_CLIENT_TIMEOUT
HTTP ステータス・コード ( 408 ) の比較用定数です。 |
static int |
HTTP_CONFLICT
HTTP ステータス・コード ( 409 ) の比較用定数です。 |
static int |
HTTP_CREATED
HTTP ステータス・コード ( 201 ) の比較用定数です。 |
static int |
HTTP_ENTITY_TOO_LARGE
HTTP ステータス・コード ( 413 ) の比較用定数です。 |
static int |
HTTP_EXPECT_FAILED
HTTP ステータス・コード ( 417 ) の比較用定数です。 |
static int |
HTTP_FORBIDDEN
HTTP ステータス・コード ( 403 ) の比較用定数です。 |
static int |
HTTP_GATEWAY_TIMEOUT
HTTP ステータス・コード ( 504 ) の比較用定数です。 |
static int |
HTTP_GONE
HTTP ステータス・コード ( 410 ) の比較用定数です。 |
static int |
HTTP_INTERNAL_ERROR
HTTP ステータス・コード ( 500 ) の比較用定数です。 |
static int |
HTTP_LENGTH_REQUIRED
HTTP ステータス・コード ( 411 ) の比較用定数です。 |
static int |
HTTP_MOVED_PERM
HTTP ステータス・コード ( 301 ) の比較用定数です。 |
static int |
HTTP_MOVED_TEMP
HTTP ステータス・コード ( 302 ) の比較用定数です。 |
static int |
HTTP_MULT_CHOICE
HTTP ステータス・コード ( 300 ) の比較用定数です。 |
static int |
HTTP_NO_CONTENT
HTTP ステータス・コード ( 204 ) の比較用定数です。 |
static int |
HTTP_NOT_ACCEPTABLE
HTTP ステータス・コード ( 406 ) の比較用定数です。 |
static int |
HTTP_NOT_AUTHORITATIVE
HTTP ステータス・コード ( 203 ) の比較用定数です。 |
static int |
HTTP_NOT_FOUND
HTTP ステータス・コード ( 404 ) の比較用定数です。 |
static int |
HTTP_NOT_IMPLEMENTED
HTTP ステータス・コード ( 501 ) の比較用定数です。 |
static int |
HTTP_NOT_MODIFIED
HTTP ステータス・コード ( 304 ) の比較用定数です。 |
static int |
HTTP_OK
HTTP ステータス・コード ( 200 ) の比較用定数です。 |
static int |
HTTP_PARTIAL
HTTP ステータス・コード ( 206 ) の比較用定数です。 |
static int |
HTTP_PAYMENT_REQUIRED
HTTP ステータス・コード ( 402 ) の比較用定数です。 |
static int |
HTTP_PRECON_FAILED
HTTP ステータス・コード ( 412 ) の比較用定数です。 |
static int |
HTTP_PROXY_AUTH
HTTP ステータス・コード ( 407 ) の比較用定数です。 |
static int |
HTTP_REQ_TOO_LONG
HTTP ステータス・コード ( 414 ) の比較用定数です。 |
static int |
HTTP_RESET
HTTP ステータス・コード ( 205 ) の比較用定数です。 |
static int |
HTTP_SEE_OTHER
HTTP ステータス・コード ( 303 ) の比較用定数です。 |
static int |
HTTP_TEMP_REDIRECT
HTTP ステータス・コード ( 307 ) の比較用定数です。 |
static int |
HTTP_UNAUTHORIZED
HTTP ステータス・コード ( 401 ) の比較用定数です。 |
static int |
HTTP_UNAVAILABLE
HTTP ステータス・コード ( 503 ) の比較用定数です。 |
static int |
HTTP_UNSUPPORTED_RANGE
HTTP ステータス・コード ( 416 ) の比較用定数です。 |
static int |
HTTP_UNSUPPORTED_TYPE
HTTP ステータス・コード ( 415 ) の比較用定数です。 |
static int |
HTTP_USE_PROXY
HTTP ステータス・コード ( 305 ) の比較用定数です。 |
static int |
HTTP_VERSION
HTTP ステータス・コード ( 505 ) の比較用定数です。 |
static String |
POST
POST メソッドを示す定数( ="POST" )です。 |
メソッドの概要 | |
---|---|
long |
getDate()
HTTP レスポンス・ヘッダ・フィールドで示された送信日時( Date )を返します。 |
long |
getExpiration()
HTTP レスポンス・ヘッダ・フィールドで示された有効期限( Expires )を返します。 |
String |
getFile()
保持しているURLからファイル名部分を取り出して返します。 |
String |
getHeaderField(int n)
HTTP レスポンス・ヘッダ・フィールドから指定行数目のフィールド値を取得して返します。 |
String |
getHeaderField(String name)
HTTP レスポンス・ヘッダ・フィールドから任意のフィールド名に対応するフィールド値を返します。 |
long |
getHeaderFieldDate(String name,
long def)
HTTP レスポンス・ヘッダ・フィールドから任意のフィールド名に対応するフィールド値を日付として分析して返します。 |
int |
getHeaderFieldInt(String name,
int def)
HTTP レスポンス・ヘッダ・フィールドから任意のフィールド名に対応するフィールド値を int 型の値で返します。 |
String |
getHeaderFieldKey(int n)
HTTP レスポンス・ヘッダ・フィールドから指定行数目のフィールド名を取得して返します。 |
String |
getHost()
接続先のホスト情報を保持しているURLから取り出して返します。 |
long |
getLastModified()
HTTP レスポンス・ヘッダ・フィールドで示された最終更新日時( Last-Modified )を返します。 |
int |
getPort()
保持しているURLからターゲットのネットワーク・ポート番号を返します。 |
String |
getProtocol()
コネクションが使用するプロトコル( http あるいは https )を保持しているURLから取り出して返します。 |
String |
getQuery()
保持しているURLからクエリー(URLの「 ? 」より後ろでリファレンスを除いた部分)を取り出して返します。 |
String |
getRef()
保持しているURLからリファレンス(URLの「 # 」より後ろの部分)を取り出して返します。 |
String |
getRequestMethod()
現在設定されているリクエスト・メソッドを文字列返します。 |
String |
getRequestProperty(String key)
コネクションで保持しているリクエスト・ヘッダ・フィールドから指定キー名の値を返します。 |
int |
getResponseCode()
HTTP レスポンス・コード(ステータス・コード)を返します。 |
String |
getResponseMessage()
HTTP レスポンス・メッセージ(ステータス・メッセージ)を返します。 |
String |
getURL()
コネクションが保持しているURLを返します。 |
void |
setRequestMethod(String method)
リクエスト・メソッドを設定します。 |
void |
setRequestProperty(String key,
String value)
リクエスト・プロパティ(リクエスト・ヘッダ・フィールド)の指定キー名に値を設定します。 |
インタフェース javax.microedition.io.ContentConnection から継承されたメソッド |
---|
getEncoding, getLength, getType |
インタフェース javax.microedition.io.InputConnection から継承されたメソッド |
---|
openDataInputStream, openInputStream |
インタフェース javax.microedition.io.OutputConnection から継承されたメソッド |
---|
openDataOutputStream, openOutputStream |
インタフェース javax.microedition.io.Connection から継承されたメソッド |
---|
close |
フィールドの詳細 |
---|
static final String HEAD
="HEAD"
)です。
static final String GET
="GET"
)です。
static final String POST
="POST"
)です。
static final int HTTP_OK
200
) の比較用定数です。
static final int HTTP_CREATED
201
) の比較用定数です。
static final int HTTP_ACCEPTED
202
) の比較用定数です。
static final int HTTP_NOT_AUTHORITATIVE
203
) の比較用定数です。
static final int HTTP_NO_CONTENT
204
) の比較用定数です。
static final int HTTP_RESET
205
) の比較用定数です。
static final int HTTP_PARTIAL
206
) の比較用定数です。
static final int HTTP_MULT_CHOICE
300
) の比較用定数です。
static final int HTTP_MOVED_PERM
301
) の比較用定数です。
static final int HTTP_MOVED_TEMP
302
) の比較用定数です。
static final int HTTP_SEE_OTHER
303
) の比較用定数です。
static final int HTTP_NOT_MODIFIED
304
) の比較用定数です。
static final int HTTP_USE_PROXY
305
) の比較用定数です。
static final int HTTP_TEMP_REDIRECT
307
) の比較用定数です。
static final int HTTP_BAD_REQUEST
400
) の比較用定数です。
static final int HTTP_UNAUTHORIZED
401
) の比較用定数です。
static final int HTTP_PAYMENT_REQUIRED
402
) の比較用定数です。
static final int HTTP_FORBIDDEN
403
) の比較用定数です。
static final int HTTP_NOT_FOUND
404
) の比較用定数です。
static final int HTTP_BAD_METHOD
405
) の比較用定数です。
static final int HTTP_NOT_ACCEPTABLE
406
) の比較用定数です。
static final int HTTP_PROXY_AUTH
407
) の比較用定数です。
static final int HTTP_CLIENT_TIMEOUT
408
) の比較用定数です。
static final int HTTP_CONFLICT
409
) の比較用定数です。
static final int HTTP_GONE
410
) の比較用定数です。
static final int HTTP_LENGTH_REQUIRED
411
) の比較用定数です。
static final int HTTP_PRECON_FAILED
412
) の比較用定数です。
static final int HTTP_ENTITY_TOO_LARGE
413
) の比較用定数です。
static final int HTTP_REQ_TOO_LONG
414
) の比較用定数です。
static final int HTTP_UNSUPPORTED_TYPE
415
) の比較用定数です。
static final int HTTP_UNSUPPORTED_RANGE
416
) の比較用定数です。
static final int HTTP_EXPECT_FAILED
417
) の比較用定数です。
static final int HTTP_INTERNAL_ERROR
500
) の比較用定数です。
static final int HTTP_NOT_IMPLEMENTED
501
) の比較用定数です。
static final int HTTP_BAD_GATEWAY
502
) の比較用定数です。
static final int HTTP_UNAVAILABLE
503
) の比較用定数です。
static final int HTTP_GATEWAY_TIMEOUT
504
) の比較用定数です。
static final int HTTP_VERSION
505
) の比較用定数です。
メソッドの詳細 |
---|
String getURL()
String getProtocol()
http
あるいは https
)を保持しているURLから取り出して返します。
String getHost()
null
を返します。
null
を返します。String getFile()
null
を返します。
null
を返します。String getRef()
#
」より後ろの部分)を取り出して返します。
リファレンス部分が無い場合は null
を返します。
null
を返します。String getQuery()
?
」より後ろでリファレンスを除いた部分)を取り出して返します。
クエリーが無い場合は null
を返します。
null
を返します。int getPort()
80
) を返します。
String getRequestMethod()
HEAD
」「GET
」あるいは「POST
」のいずれかです。
デフォルトでは「GET
」が設定されています。
HEAD
,
GET
,
POST
void setRequestMethod(String method) throws IOException
GET
」「POST
」あるいは「HEAD
」のいずれかです。
デフォルトでは「GET
」が設定されています。
method
- 設定するメソッドを返します。
IOException
- メソッドがリセットできなかった場合あるいは指定されたメソッドが不正であった場合に throw します。HEAD
,
GET
,
POST
String getRequestProperty(String key)
key
- 取り出す対象のキー名を渡します(例えば「accept
」や「User-Agent
」などです)。
void setRequestProperty(String key, String value) throws IOException
リクエスト・プロパティ(リクエスト・ヘッダ・フィールド)の指定キー名に値を設定します。 すでにリクエスト・プロパティに対応するキー名に値が設定されていた場合、上書きをします。
注記:1つのリクエスト・プロパティに対して複数の値を設定する場合は、アプリケーション側で全ての値をカンマ区切りの文字列として構成してからこのメソッドを呼び出す必要があります。個別に値を設定しようとすると上書きが行われてしまい、最後に設定された値のみが有効となります。
key
- 設定するキー名を渡します。value
- キー名に対応する設定する値を渡します。
IOException
- ドキュメントに throw される場合の条件が無いため不明です(おそらくサーバー接続後に呼び出された場合に throw するものと思われます)。int getResponseCode() throws IOException
IOException
- サーバーに接続する前に呼び出した場合に throw します。String getResponseMessage() throws IOException
null
を返します。
null
を返します。
IOException
- サーバーに接続する前に呼び出した場合に throw します。long getExpiration() throws IOException
Expires
)を返します。
有効期限は 1970 年 1 月 1 日午前 0 時 (GMT) からの経過ミリ秒数で返します。
有効期限が不明な場合、0 を返します。
IOException
- サーバーに接続する前に呼び出した場合に throw します。long getDate() throws IOException
Date
)を返します。
送信日時は 1970 年 1 月 1 日午前 0 時 (GMT) からの経過ミリ秒数で返します。
送信日時が不明な場合、0 を返します。
IOException
- サーバーに接続する前に呼び出した場合に throw します。long getLastModified() throws IOException
Last-Modified
)を返します。
最終更新日時は 1970 年 1 月 1 日午前 0 時 (GMT) からの経過ミリ秒数で返します。
最終更新日時が不明な場合、0 を返します。
IOException
- サーバーに接続する前に呼び出した場合に throw します。String getHeaderField(String name) throws IOException
null
を返します。
name
- 取得するフィールド名を渡します。
null
を返します。
IOException
- サーバーに接続する前に呼び出した場合に throw します。int getHeaderFieldInt(String name, int def) throws IOException
int
型の値で返します。
該当するフィールドが無い場合および値が不正な形式の場合、指定したデフォルトの値を返します。
一部のコネクション・タイプ(例えば http-ng
)が分析済みのヘッダを持つことがありますが、このメソッドをオーバーライドすることによって分析を避けることができます。
name
- 取得するフィールド名を渡します。def
- デフォルトの値を渡します。
IOException
- サーバーに接続する前に呼び出した場合に throw します。long getHeaderFieldDate(String name, long def) throws IOException
http-ng
)が分析済みのヘッダを持つことがありますが、このメソッドをオーバーライドすることによって分析を避けることができます。
name
- 取得するフィールド名を渡します。def
- デフォルトの値を渡します。
IOException
- サーバーに接続する前に呼び出した場合に throw します。String getHeaderField(int n) throws IOException
null
を返します。
行数は0オリジンで指定します。
n
- 取り出すフィールドの行番号を渡します。
null
を返します。
IOException
- サーバーに接続する前に呼び出した場合に throw します。String getHeaderFieldKey(int n) throws IOException
null
を返します。
行数は0オリジンで指定します。
n
- 取り出すフィールドの行番号を渡します。
null
を返します。
IOException
- サーバーに接続する前に呼び出した場合に throw します。
|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
公式仕様書原文の著作権表記等(※): Mobile Information Device Profile Specification ("Specification") Version: 2.0 Status: FCS Release: November 5, 2002 Copyright 2002 Sun Microsystems, Inc. and Motorola, Inc. All rights reserved. | ※ただしこの API リファレンスは英語仕様を一語一句正確に翻訳したものではなく、一度私が英語の仕様原文を読んだ上で元の意味と構造をなるべく保つように書き起こしたものです。このため一部は完全に異なる説明となっています。また CLDC 1.1 部分は同仕様の範囲外であるため、まったく参考とはしていません。 ※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。 |