org.opengion.fukurou.util

## クラス URLConnect

- java.lang.Object
- - org.opengion.fukurou.util.URLConnect

- 非推奨です。

      @Deprecated
      public class URLConnect
      extends java.lang.Object

       URLConnect は、指定のURL にアクセスして、情報/データを取得します。
       URL へのアクセスにより、エンジンでは各種処理を実行させることが可能になります。
       例えば、帳票デーモンの起動や、長時間かかる処理の実行などです。
       なお、URLに引数が付く場合は、ダブルコーテーションで括って下さい。
       - 付き引数は、指定順番は、関係ありません。- 無し引数(url,user:passwd)は、
       順番があります。

       Usage: java org.opengion.fukurou.util.URLConnect [-info/-data] … url [user:passwd]

         args[*] : [-info/-data/-binary] 情報の取得か、データの取得か、ファイルの取得かを指定します(初期値:data) // 6.8.5.1 (2018/01/15) -binary 追加
         args[*] : [-post=ファイル名]    POSTメソッドを指定して、ファイルデータを送信します
         args[*] : [-timeout=1]          接続タイムアウト時間を(秒)で指定します(初期値:-1)
         args[*] : [-encode=UTF-8]       エンコードを指定します(通常は接続先のencodeを使用)
         args[*] : [-out=ファイル名]     結果を指定されたファイルエンコードでファイルに出力します
         args[*] : [-errEx=true/false]   trueの場合、ﾚｽﾎﾟﾝｽｺｰﾄﾞが、4XX,5XX の時に RuntimeException を投げます(初期値:false)
         args[*] : [-proxy=host:port]    proxy を使用する場合のホストとポートを指定します。  6.8.1.3 (2017/08/04)
         args[A] : url                   ＵＲＬを指定します。GETの場合、パラメータは ?KEY=VALです
         args[B] : [user:passwd]         BASIC認証のエリアへのアクセス時に指定します

       ※ プロキシ設定の３つの方法
       プロキシ設定には、３つの方法があります。
         1.
           URL url = URL( "http",proxyHost,proxyPort, url );
           URLConnection urlConn = url.openConnection();
         2.
           SocketAddress scaddr = new InetSocketAddress( proxyHost, proxyPort );
           Proxy proxy = new Proxy( Proxy.Type.HTTP, scaddr );
           URL url = new Url( url );
           URLConnection urlConn = url.openConnection( proxy );
         3.
           System.setProperty( "http.proxyHost",host );
           System.setProperty( "http.proxyPort",String.valueOf( port ) );
           URL url = new Url( url );
           URLConnection urlConn = url.openConnection();
           System.clearProperty( "http.proxyHost" );
           System.clearProperty( "http.proxyPort" );

       1. 、2. の方法は、urlConn.getContentType() を実行すると、エラーになります。(原因不明)
       3. の方法では、マルチスレッドで実行する場合に、問題が発生します。
       本クラスでは、方法２ を使用しています。

       6.9.0.0 (2018/01/31) にて、HttpConnect と置き換えてください。
       互換性は、あまりないため、個別対応になります。

  変更履歴:

    6.9.0.0 (2018/01/31) 廃止予定

  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `URLConnect(java.lang.String url, java.lang.String pass)` 非推奨です。 コンストラクター

  - ### メソッドのサマリー

    すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド 非推奨のメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `static java.lang.String` | `code2Message(int code)` 非推奨です。 HttpURLConnection のレスポンスコードに対応するメッセージ文字列を返します。
    `void` | `connect()` 非推奨です。 指定のURLに対して、コネクトします。
    `void` | `disconnect()` 非推奨です。 サーバへのほかの要求が今後発生しそうにないことを示します。
    `java.lang.String` | `getCharset()` 非推奨です。 キャラクタ 情報を取得します。
    `int` | `getCode()` 非推奨です。 結果コード 情報(HttpURLConnection)を取得します。
    `protected java.net.URLConnection` | `getConnection()` 非推奨です。 URL と ユーザー：パスワードを与えて、URLConnectionを返します。
    `long` | `getDate()` 非推奨です。 作成日時 情報を取得します。
    `java.io.InputStream` | `getInputStream()` 非推奨です。 接続先のデータの入力ストリームを取得します。
    `long` | `getLength()` 非推奨です。 データ量 情報を取得します。
    `java.lang.String` | `getMessage()` 非推奨です。 メッセージ 情報(HttpURLConnection)を取得します。
    `java.lang.String` | `getMethod()` 非推奨です。 メソッド 情報(HttpURLConnection)を取得します。
    `long` | `getModified()` 非推奨です。 更新日時 情報を取得します。
    `java.io.BufferedReader` | `getReader()` 非推奨です。 接続先のデータのリーダーを取得します。
    `java.lang.String` | `getType()` 非推奨です。 タイプ 情報を取得します。
    `java.lang.String` | `getUrl()` 非推奨です。 URL 情報を取得します。
    `static void` | `main(java.lang.String[] args)` 非推奨です。 サンプル実行用のメインメソッド Usage: java org.opengion.fukurou.util.URLConnect [-info/-data/-binary] … url [user:passwd] args[*] : [-info/-data/-binary] 情報の取得か、データの取得かを指定します(初期値:-data)。
    `void` | `outBinary(java.lang.String outFile)` 非推奨です。 URL接続先のバイナリファイルを取得します。
    `java.lang.String` | `readData()` 非推奨です。 URL接続先のデータを取得します。
    `void` | `setCharset(java.lang.String chset)` 非推奨です。 キャラクタ 情報を設定します。
    `void` | `setPostData(java.lang.String data)` 非推奨です。 POSTするデータを設定します。
    `void` | `setProxy(java.lang.String host, int port)` 非推奨です。 指定のURLに対して、コネクトするのに使用するプロキシ設定を行います。
    `void` | `setRequestProperty(java.lang.String keys, java.lang.String vals)` 非推奨です。 setRequestPropertyでセットするデータを設定します。
    `void` | `setTimeout(int tout)` 非推奨です。 接続タイムアウト時間を(秒)で指定します 実際には、java.net.URLConnection#setConnectTimeout(int) に 1000倍して設定されます。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### URLConnect

          public URLConnect(java.lang.String url,
                            java.lang.String pass)

      非推奨です。
      コンストラクター
      パラメータ:
        `url` - 接続するアドレスを指定します。(http://server:port/dir/file.html)
        `pass` - ユーザー：パスワード(認証接続が必要な場合)

  - ### メソッドの詳細

    - #### setProxy

          public void setProxy(java.lang.String host,
                               int port)

      非推奨です。
      指定のURLに対して、コネクトするのに使用するプロキシ設定を行います。 このときに、ヘッダー情報を内部変数に設定しておきます。
      パラメータ:
        `host` - 接続するプロキシのホスト名
        `port` - 接続するプロキシのポート番号

    - #### connect

          public void connect()
                       throws java.io.IOException

      非推奨です。
      指定のURLに対して、コネクトします。 このときに、ヘッダー情報を内部変数に設定しておきます。
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき
      変更履歴:

        4.0.1.0 (2007/12/12) Postで複数キーを使えるように修正
        5.1.6.0 (2010/05/01) charsetを指定できるようにする

    - #### readData

          public java.lang.String readData()
                                    throws java.io.IOException

      非推奨です。
      URL接続先のデータを取得します。 この処理の前に、connect() 処理を実行しておく必要があります。 取得したデータは、指定のURL へのアクセスのみです。 通常のWebブラウザは、イメージや、JavaScriptファイル、CSSファイルなど、 各種ファイル毎にHTTP接続を行い、取得して、レンダリングします。 このメソッドでの処理では、それらのファイル内に指定されているURLの 再帰的な取得は行いません。 よって、フレーム処理なども行いません。 本来は、Stream のまま処理することで、バイナリデータも扱えますが、ここでは、 テキストデータ(String)に変換して使用できるデータのみ扱えます。
      戻り値:
        接続結果
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき
      このメソッドは、nullを返しません

    - #### outBinary

          public void outBinary(java.lang.String outFile)
                         throws java.io.IOException

      非推奨です。
      URL接続先のバイナリファイルを取得します。 この処理の前に、connect() 処理を実行しておく必要があります。 取得したファイルは、outFile にバイナリのまま書き込まれます。 よって、エンコードの指定は不要です。
      パラメータ:
        `outFile` - 出力するファイル名。
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき
      変更履歴:

        6.8.5.1 (2018/01/15) -binary 追加

    - #### disconnect

          public void disconnect()

      非推奨です。
      サーバへのほかの要求が今後発生しそうにないことを示します。

    - #### getConnection

          protected java.net.URLConnection getConnection()
                                                  throws java.io.IOException

      非推奨です。
      URL と ユーザー：パスワードを与えて、URLConnectionを返します。 ユーザー：パスワード が null でない場合は、BASCI認証エリアへのアクセスの為、 BASE64Encoder を行って、Authorization プロパティーを設定します。 ここで返す URLConnection は、すでに、connect() メソッド実行済みの リモート接続が完了した状態のオブジェクトです。
      戻り値:
        URLConnectionオブジェクト
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき
      変更履歴:

        5.8.3.0 (2015/01/09) ヘッダ等指定のためにsetRequestPropertyの値を指定できるようにします。
        6.2.5.0 (2015/06/05) timeout属性追加
        6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
        6.4.2.0 (2016/01/29) fukurou.util.StringUtil → fukurou.system.HybsConst に変更

    - #### getUrl

          public java.lang.String getUrl()

      非推奨です。
      URL 情報を取得します。
      戻り値:
        URL情報
      変更履歴:

        4.3.4.4 (2009/01/01) メソッド名変更

    - #### setRequestProperty

          public void setRequestProperty(java.lang.String keys,
                                         java.lang.String vals)

      非推奨です。
      setRequestPropertyでセットするデータを設定します。 ヘッダ等指定のためにsetRequestPropertyの値を指定できるようにします。 例えばJSON形式でPOSTする場合は通常"Content-Type", "application/json"を指定します。 keys,vals各々、カンマ区切り(CSV形式)で渡されますので、分解しておきます。
      パラメータ:
        `keys` - パラメータキー(CSV形式)
        `vals` - パラメータ値(CSV形式)
      例外:
        `java.lang.IllegalArgumentException` - 引数の数が一致しない場合
      変更履歴:

        5.8.3.0 (2015/01/09) ヘッダ等指定のためにsetRequestPropertyの値を指定できるようにします。

    - #### setPostData

          public void setPostData(java.lang.String data)

      非推奨です。
      POSTするデータを設定します。 POSTする場合は、connect() 処理を行う前に、データを設定しておく必要があります。
      パラメータ:
        `data` - POSTデータ
      変更履歴:

        4.1.0.0 (2007/12/22) キーと値のセットを取得するよう変更

    - #### getType

          public java.lang.String getType()

      非推奨です。
      タイプ 情報を取得します。
      戻り値:
        タイプ 情報

    - #### getLength

          public long getLength()

      非推奨です。
      データ量 情報を取得します。
      戻り値:
        データ量 情報

    - #### getDate

          public long getDate()

      非推奨です。
      作成日時 情報を取得します。
      戻り値:
        作成日時

    - #### getModified

          public long getModified()

      非推奨です。
      更新日時 情報を取得します。
      戻り値:
        更新日時

    - #### getCode

          public int getCode()

      非推奨です。
      結果コード 情報(HttpURLConnection)を取得します。
      戻り値:
        結果コード 情報

    - #### getMethod

          public java.lang.String getMethod()

      非推奨です。
      メソッド 情報(HttpURLConnection)を取得します。
      戻り値:
        メソッド 情報

    - #### getMessage

          public java.lang.String getMessage()

      非推奨です。
      メッセージ 情報(HttpURLConnection)を取得します。
      戻り値:
        メッセージ 情報

    - #### getCharset

          public java.lang.String getCharset()

      非推奨です。
      キャラクタ 情報を取得します。
      戻り値:
        キャラクタ 情報

    - #### setCharset

          public void setCharset(java.lang.String chset)

      非推奨です。
      キャラクタ 情報を設定します。
      パラメータ:
        `chset` - キャラクタ 情報

    - #### setTimeout

          public void setTimeout(int tout)

      非推奨です。
      接続タイムアウト時間を(秒)で指定します 実際には、java.net.URLConnection#setConnectTimeout(int) に 1000倍して設定されます。 0 は、無限のタイムアウト、マイナスは、設定しません。(つまりJavaの初期値のまま)
      パラメータ:
        `tout` - タイムアウト時間(秒) (ゼロは、無制限)
      関連項目:
        `URLConnection.setConnectTimeout(int)`
      変更履歴:

        6.2.5.0 (2015/06/05) timeout属性追加

    - #### getReader

          public java.io.BufferedReader getReader()
                                           throws java.io.IOException

      非推奨です。
      接続先のデータのリーダーを取得します。 この処理の前に、connect() 処理を実行しておく必要があります。 取得したデータは、指定のURL へのアクセスのみです。 通常のWebブラウザは、イメージや、JavaScriptファイル、CSSファイルなど、 各種ファイル毎にHTTP接続を行い、取得して、レンダリングします。 このメソッドでの処理では、それらのファイル内に指定されているURLの 再帰的な取得は行いません。 よって、フレーム処理なども行いません。
      戻り値:
        接続結果のリーダー
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき
      変更履歴:

        6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
        6.4.2.0 (2016/01/29) fukurou.util.StringUtil → fukurou.system.HybsConst に変更

    - #### getInputStream

          public java.io.InputStream getInputStream()
                                             throws java.io.IOException

      非推奨です。
      接続先のデータの入力ストリームを取得します。 この処理の前に、connect() 処理を実行しておく必要があります。 取得したデータは、指定のURL へのアクセスのみです。 通常のWebブラウザは、イメージや、JavaScriptファイル、CSSファイルなど、 各種ファイル毎にHTTP接続を行い、取得して、レンダリングします。 このメソッドでの処理では、それらのファイル内に指定されているURLの 再帰的な取得は行いません。 よって、フレーム処理なども行いません。
      戻り値:
        接続結果の入力を出力します。
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき
      変更履歴:

        5.4.2.0 (2011/12/01) 新規追加
        6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)

      このメソッドは、nullを返しません

    - #### code2Message

          public static java.lang.String code2Message(int code)

      非推奨です。
      HttpURLConnection のレスポンスコードに対応するメッセージ文字列を返します。 HttpURLConnection の getResponseCode() メソッドにより取得された、HTTPレスポンスコード に対応する文字列を返します。この文字列は、HttpURLConnection で定義された static 定数のコメントを、定義しています。
      パラメータ:
        `code` - HTTPレスポンスコード
      戻り値:
        レスポンスコードに対応する文字列
      関連項目:
        `HttpURLConnection.HTTP_ACCEPTED`
      変更履歴:

        5.6.7.0 (2013/07/27) レスポンスコード例 追加

      このメソッドは、nullを返しません

    - #### main

          public static void main(java.lang.String[] args)
                           throws java.io.IOException

      非推奨です。
      サンプル実行用のメインメソッド Usage: java org.opengion.fukurou.util.URLConnect [-info/-data/-binary] … url [user:passwd] args[*] : [-info/-data/-binary] 情報の取得か、データの取得かを指定します(初期値:-data)。 args[*] : [-post=ファイル名] POSTメソッドを指定して、ファイルデータを送信します(初期値:-get)。 args[*] : [-timeout=1] 接続タイムアウト時間を(秒)で指定します args[*] : [-encode=UTF-8] エンコードを指定します(通常は接続先のencodeを使用) args[*] : [-out=ファイル名] 結果をファイルに出力します。ファイルエンコードも指定します。 args[*] : [-errEx=true/false] trueの場合、ﾚｽﾎﾟﾝｽｺｰﾄﾞが、4XX,5XX の時に RuntimeException を投げます(初期値:false)。 args[A] : url ＵＲＬを指定します。GETの場合、パラメータは ?KEY=VALです。 args[B] : [user:passwd] BASIC認証のエリアへのアクセス時に指定します。
      パラメータ:
        `args` - コマンド引数配列
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき
      変更履歴:

        5.6.7.0 (2013/07/27) -errEx 追加
        6.2.5.0 (2015/06/05) timeout属性追加
        6.4.5.1 (2016/04/28) FileStringのコンストラクター変更
        6.4.5.2 (2016/05/06) fukurou.util.FileString から、fukurou.util.FileUtil に移動。
        6.8.1.3 (2017/08/04) main引数からのURLは、StringUtil.urlEncode2 を必ず適用する。
        6.8.5.1 (2018/01/15) -binary 追加

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.