クラス HttpConnect
- java.lang.Object
-
- org.opengion.fukurou.util.HttpConnect
-
public class HttpConnect extends java.lang.Object
HttpConnect は、指定のURL にアクセスして、データを取得します。 URL へのアクセスにより、エンジンでは各種処理を実行させることが可能になります。 例えば、帳票デーモンの起動や、長時間かかる処理の実行などです。 なお、URLに引数が付く場合は、ダブルコーテーションで括って下さい。 URL の指定は、先頭に何もつけませ。指定の順番も関係ありません。 - 付き引数は、指定順番は、関係ありません。 先頭が # の引数は、コメントと判断します。Usage: java org.opengion.fukurou.util.HttpConnect [-post=キー:ファイル名] … url [user:passwd] args[A] : url URLを指定します。GETの場合、パラメータは ?KEY=VALです args[*] : [-param=key:value] POST/GET時のパラメータのキーと値を:で区切って指定します。(複数回指定可) args[*] : [-header=key:value] ヘッダーに設定するパラメータのキーと値を:で区切って指定します。(複数回指定可) args[*] : [-auth=user:pass] BASIC認証のエリアへのアクセス時のユーザーとパスワードを指定します args[*] : [-proxy=host:port] proxy を使用する場合のホストとポートを指定します。 args[*] : [-timeout=3] 接続タイムアウト時間を(秒)で指定します(初期値:無指定) args[*] : [-encode=UTF-8] エンコードを指定します。(初期値は UTF-8) args[*] : [-out=ファイル名] 結果をファイルに出力します。初期値は標準出力です args[*] : [-download=ファイル名] ファイル名を指定して、ダウンロードします args[*] : [-upload=ファイル名] ファイル名を指定して、multipart/form-dataでファイルアップロードします args[*] : [-errEx=true/false] trueの場合、レスポンスコードが、4XX,5XX の時に RuntimeException を投げます(初期値:false) args[*] : [#・・・・] コメント引数。(BATファイル上に残しておきたいが、使用したくない場合など) args[*] : [-debug=true/false] trueの場合、適度にデバッグ用のメッセージを出力します(初期値:false)
※ URLConnect との違い。 -info/-data 等の区別の廃止。(実質、-info がなくなる。) setDownloadFile(String) 追加(-binaryの代用) setUploadFile(String) 追加 proxy 設定の変更- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
- バージョン
- 6.9.0.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK8.0,
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static java.lang.String
DEFAULT_AGENT
User-Agentの初期値 "openGion with Apache HttpClient"static java.lang.String
DEFAULT_CHARSET
エンコードの初期値 "UTF-8"static java.lang.String
DEFAULT_LANG
言語の初期値 "ja-JP"static int
MAX_GET_LENGTH
GETで指定するときのURLの長さ制限 2000 (IEの場合は、2,083文字)
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 HttpConnect(java.lang.String url, java.lang.String userPass)
接続先URLと、認証用ユーザー:パスワードを指定する、コンストラクター 認証が必要ない場合は、userPass は、null でかまいません。
-
メソッドの概要
すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 void
addHeaderProperty(java.lang.String key, java.lang.String val)
Header として、HttpClient にセットするデータを設定します。void
addRequestProperty(java.lang.String key, java.lang.String val)
接続先に使用する引数(パラメータ)を追加します。static java.lang.String
code2Message(int code)
HttpURLConnection のレスポンスコードに対応するメッセージ文字列を返します。int
getCode()
実行結果のステータスコード 情報を取得します。java.lang.String
getMessage()
メッセージ 情報を取得します。static void
main(java.lang.String[] args)
サンプル実行用のメインメソッドjava.lang.String
readData()
URL接続先のデータを取得します。void
setCharset(java.lang.String chset)
エンコード情報を設定します。void
setDebug(boolean isDebug)
trueの場合、適度にデバッグ用のメッセージを出力します(初期値:false)。void
setDownloadFile(java.lang.String dwldFile)
URL接続先のバイナリファイルをダウンロード取得します。void
setProxy(java.lang.String host, int port)
指定のURLに対して、コネクトするのに使用するプロキシ設定を行います。void
setRequestProperty(java.lang.String keys, java.lang.String vals)
setRequestPropertyでセットするデータを設定します。void
setTimeout(int tout)
接続タイムアウト時間を(秒)で指定します 実際には、org.apache.http.client.config.RequestConfig に対して、 .setConnectTimeout( timeout * 1000 ) .setSocketTimeout( timeout * 1000 ) のように、 1000倍して設定しています。void
setUploadFile(java.lang.String upldFile)
URL接続先のバイナリファイルをアップロードします。void
usePost(boolean usePost)
trueの場合、POSTを使用して接続します(初期値:false)。
-
-
-
フィールドの詳細
-
DEFAULT_CHARSET
public static final java.lang.String DEFAULT_CHARSET
エンコードの初期値 "UTF-8"- 関連項目:
- 定数フィールド値
-
DEFAULT_LANG
public static final java.lang.String DEFAULT_LANG
言語の初期値 "ja-JP"- 関連項目:
- 定数フィールド値
-
DEFAULT_AGENT
public static final java.lang.String DEFAULT_AGENT
User-Agentの初期値 "openGion with Apache HttpClient"- 関連項目:
- 定数フィールド値
-
MAX_GET_LENGTH
public static final int MAX_GET_LENGTH
GETで指定するときのURLの長さ制限 2000 (IEの場合は、2,083文字)- 関連項目:
- 定数フィールド値
-
-
コンストラクタの詳細
-
HttpConnect
public HttpConnect(java.lang.String url, java.lang.String userPass)
接続先URLと、認証用ユーザー:パスワードを指定する、コンストラクター 認証が必要ない場合は、userPass は、null でかまいません。 接続先URLは、HttpConnect で、urlEncode しますので、そのままの文字列でかまいません。- パラメータ:
url
- 接続するアドレスを指定します。(http://server:port/dir/file.html)userPass
- ユーザー:パスワード(認証接続が必要な場合)- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
-
メソッドの詳細
-
readData
public java.lang.String readData() throws java.io.IOException, java.net.MalformedURLException
URL接続先のデータを取得します。 この処理の前に、必要な情報を設定して置いてください。 また、code や message は、このメソッドを実行しないと取得できませんのでご注意ください。 取得したデータは、指定のURL へのアクセスのみです。 通常のWebブラウザは、イメージや、JavaScriptファイル、CSSファイルなど、 各種ファイル毎にHTTP接続を行い、取得して、レンダリングします。 このメソッドでの処理では、それらのファイル内に指定されているURLの 再帰的な取得は行いません。 よって、フレーム処理なども行いません。- 戻り値:
- 接続結果
- 例外:
java.io.IOException
- 入出力エラーが発生したときjava.net.MalformedURLException
- URLの形式が間違っている場合- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
- このメソッドは、nullを返しません
-
addRequestProperty
public void addRequestProperty(java.lang.String key, java.lang.String val)
接続先に使用する引数(パラメータ)を追加します。 これは、POSTでも、GETでも使用できます。 POSTの場合は、NameValuePair として、HttpPost に、Entity としてセットするデータを設定します。 GET の場合は、既存の接続先URLに、&キー=値・・・・ で、追記します。 すでに、パラメータが指定済みの場合は、& で、そうでなければ、? で連結します。 ここで指定するパラメータは、内部で、urlEncode しますので、そのままの文字列でかまいません。 デフォルトは、GETですが、Internet Explorer では URL に最大 2,083 文字しか指定できないため、 それ以上の場合は、POST に自動で切り替えます。- パラメータ:
key
- パラメータキー(nullの場合は、登録しません)val
- パラメータ値- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
setRequestProperty
public void setRequestProperty(java.lang.String keys, java.lang.String vals)
setRequestPropertyでセットするデータを設定します。 keys,vals各々、カンマ区切りで分解します。- パラメータ:
keys
- パラメータキー(カンマ区切り)vals
- パラメータ(カンマ区切り)- 変更履歴:
- 5.10.16.0 (2019/10/04) 追加
-
setProxy
public void setProxy(java.lang.String host, int port)
指定のURLに対して、コネクトするのに使用するプロキシ設定を行います。 このときに、ヘッダー情報を内部変数に設定しておきます。- パラメータ:
host
- 接続するプロキシのホスト名(nullの場合は、登録しません)port
- 接続するプロキシのポート番号- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
addHeaderProperty
public void addHeaderProperty(java.lang.String key, java.lang.String val)
Header として、HttpClient にセットするデータを設定します。 例えばJSON形式でPOSTする場合は通常"Content-Type", "application/json"を指定します。- パラメータ:
key
- パラメータキー(nullの場合は、登録しません)val
- パラメータ値(nullの場合は、登録しません)- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
setDownloadFile
public void setDownloadFile(java.lang.String dwldFile) throws java.io.IOException
URL接続先のバイナリファイルをダウンロード取得します。 取得したファイルは、dwldFile にバイナリのまま書き込まれます。 よって、エンコードの指定は不要です。- パラメータ:
dwldFile
- ダウンロードするファイル名。- 例外:
java.io.IOException
- 入出力エラーが発生したとき- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
setUploadFile
public void setUploadFile(java.lang.String upldFile) throws java.io.IOException
URL接続先のバイナリファイルをアップロードします。 取得したファイルは、upldFile にバイナリのまま書き込まれます。 よって、エンコードの指定は不要です。 アップロード は、multipart/form-data で送信するため、isPost = true を 内部的に設定しておきます。- パラメータ:
upldFile
- アップロードするファイル名。- 例外:
java.io.IOException
- 入出力エラーが発生したとき- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
setCharset
public void setCharset(java.lang.String chset)
エンコード情報を設定します。 初期値は、UTF-8 です。- パラメータ:
chset
- エンコード情報(nullの場合は、初期値:UTF-8 になります)- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
setTimeout
public void setTimeout(int tout)
接続タイムアウト時間を(秒)で指定します 実際には、org.apache.http.client.config.RequestConfig に対して、 .setConnectTimeout( timeout * 1000 ) .setSocketTimeout( timeout * 1000 ) のように、 1000倍して設定しています。 0 は、無限のタイムアウト、マイナスは、設定しません。(つまりJavaの初期値のまま)- パラメータ:
tout
- タイムアウト時間(秒) (ゼロは、無制限)- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
usePost
public void usePost(boolean usePost)
trueの場合、POSTを使用して接続します(初期値:false)。 通常はGETですが、外部から強制的に、POSTで送信したい場合に、 設定します。 ただし、バイナリファイルをアップロードか、URLの長さ制限が、 2000 を超えた場合は、内部で自動的に、post にします。- パラメータ:
usePost
- true:POST使用/false:通常(GET)- 変更履歴:
- 6.9.0.1 (2018/02/05) 新規作成
-
setDebug
public void setDebug(boolean isDebug)
trueの場合、適度にデバッグ用のメッセージを出力します(初期値:false)。- パラメータ:
isDebug
- true:デバッグ用のメッセージを出力/false:通常- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
getCode
public int getCode()
実行結果のステータスコード 情報を取得します。 結果は、#readData() メソッドをコールしないと取れません。 未実行の場合は、-1 がセットされています。- 戻り値:
- 結果コード 情報
- 関連項目:
readData()
- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
getMessage
public java.lang.String getMessage()
メッセージ 情報を取得します。 結果は、#readData() メソッドをコールしないと取れません。 未実行の場合は、null がセットされています。- 戻り値:
- メッセージ 情報
- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
code2Message
public static java.lang.String code2Message(int code)
HttpURLConnection のレスポンスコードに対応するメッセージ文字列を返します。 HttpURLConnection の getResponseCode() メソッドにより取得された、HTTPレスポンスコード に対応する文字列を返します。この文字列は、HttpURLConnection で定義された static 定数のコメントを、定義しています。- パラメータ:
code
- HTTPレスポンスコード- 戻り値:
- レスポンスコードに対応する文字列
- 関連項目:
HttpURLConnection.HTTP_ACCEPTED
- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
- このメソッドは、nullを返しません
-
main
public static void main(java.lang.String[] args) throws java.io.IOException
サンプル実行用のメインメソッドUsage: java org.opengion.fukurou.util.HttpConnect [-post=キー:ファイル名] … url [user:passwd] args[A] : url URLを指定します。GETの場合、パラメータは ?KEY=VALです args[*] : [-param=key:value] POST/GET時のパラメータのキーと値を:で区切って指定します。(複数回指定可) args[*] : [-header=key:value] ヘッダーに設定するパラメータのキーと値を:で区切って指定します。(複数回指定可) args[*] : [-auth=user:pass] BASIC認証のエリアへのアクセス時のユーザーとパスワードを指定します args[*] : [-proxy=host:port] proxy を使用する場合のホストとポートを指定します。 args[*] : [-timeout=3] 接続タイムアウト時間を(秒)で指定します(初期値:無指定) args[*] : [-encode=UTF-8] エンコードを指定します。(初期値は UTF-8) args[*] : [-out=ファイル名] 結果をファイルに出力します。初期値は標準出力です args[*] : [-download=ファイル名] ファイル名を指定して、ダウンロードします args[*] : [-upload=ファイル名] ファイル名を指定して、multipart/form-dataでファイルアップロードします args[*] : [-errEx=true/false] trueの場合、レスポンスコードが、4XX,5XX の時に RuntimeException を投げます(初期値:false) args[*] : [#・・・・] コメント引数。(BATファイル上に残しておきたいが、使用したくない場合など) args[*] : [-debug=true/false] trueの場合、適度にデバッグ用のメッセージを出力します(初期値:false)
- パラメータ:
args
- コマンド引数配列- 例外:
java.io.IOException
- 入出力エラーが発生したとき- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
-