public static SetProxy ( HttpConnection pType, string host, int port, string username, string password ) : void | ||
pType | HttpConnection | |
host | string | |
port | int | |
username | string | |
password | string | |
return | void |
///<summary> ///通信クラスの初期化処理。タイムアウト値とプロキシを設定する ///</summary> ///<remarks> ///通信開始前に最低一度呼び出すこと ///</remarks> ///<param name="timeout">タイムアウト値(秒)</param> ///<param name="proxyType">なし・指定・IEデフォルト</param> ///<param name="proxyAddress">プロキシのホスト名orIPアドレス</param> ///<param name="proxyPort">プロキシのポート番号</param> ///<param name="proxyUser">プロキシ認証が必要な場合のユーザ名。不要なら空文字</param> ///<param name="proxyPassword">プロキシ認証が必要な場合のパスワード。不要なら空文字</param> public static void InitializeConnection( int timeout, ProxyType proxyType, string proxyAddress, int proxyPort, string proxyUser, string proxyPassword) { isInitialize = true; ServicePointManager.Expect100Continue = false; DefaultTimeout = timeout * 1000; //s -> ms switch (proxyType) { case ProxyType.None: proxy = null; break; case ProxyType.Specified: proxy = new WebProxy("http://" + proxyAddress + ":" + proxyPort); if (!String.IsNullOrEmpty(proxyUser) || !String.IsNullOrEmpty(proxyPassword)) { proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword); } break; case ProxyType.IE: //IE設定(システム設定)はデフォルト値なので処理しない break; } proxyKind = proxyType; Win32Api.SetProxy(proxyType, proxyAddress, proxyPort, proxyUser, proxyPassword); }
///<summary> ///通信クラスの初期化処理。タイムアウト値とプロキシを設定する ///</summary> ///<remarks> ///通信開始前に最低一度呼び出すこと ///</remarks> ///<param name="timeout">タイムアウト値(秒)</param> ///<param name="proxyType">なし・指定・IEデフォルト</param> ///<param name="proxyAddress">プロキシのホスト名orIPアドレス</param> ///<param name="proxyPort">プロキシのポート番号</param> ///<param name="proxyUser">プロキシ認証が必要な場合のユーザ名。不要なら空文字</param> ///<param name="proxyPassword">プロキシ認証が必要な場合のパスワード。不要なら空文字</param> public static void InitializeConnection( int timeout, ProxyType proxyType, string proxyAddress, int proxyPort, string proxyUser, string proxyPassword) { isInitialize = true; ServicePointManager.Expect100Continue = false; DefaultTimeout = timeout * 1000; //s -> ms switch (proxyType) { case ProxyType.None: proxy = null; break; case ProxyType.Specified: proxy = new WebProxy("http://" + proxyAddress + ":" + proxyPort); if (!String.IsNullOrEmpty(proxyUser) || !String.IsNullOrEmpty(proxyPassword)) { proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword); } break; case ProxyType.IE: //IE設定(システム設定)はデフォルト値なので処理しない break; } proxyKind = proxyType; // Windows 8.1の場合SecurityProtocolを明確に指定する必要がある var osVersion = Environment.OSVersion.Version; if (osVersion.Major == 6 && osVersion.Minor == 2) { ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; } Win32Api.SetProxy(proxyType, proxyAddress, proxyPort, proxyUser, proxyPassword); }