C# Class OpenTween.HttpConnection

ファイルを表示 Open project: rhenium/OpenTween

Public Methods

Method Description
InitializeConnection ( int timeout, ProxyType proxyType, string proxyAddress, int proxyPort, string proxyUser, string proxyPassword ) : void

通信クラスの初期化処理。タイムアウト値とプロキシを設定する

通信開始前に最低一度呼び出すこと

Protected Methods

Method Description
CreateQueryString ( string>.IDictionary param ) : string

クエリコレクションをkey=value形式の文字列に構成して戻す

CreateRequest ( string method, Uri requestUri, string>.Dictionary param, FileInfo>.List binaryFileInfo, bool withCookie ) : HttpWebRequest

HttpWebRequestオブジェクトを取得する。multipartでのバイナリアップロード用。

methodにはPOST/PUTのみ指定可能

CreateRequest ( string method, Uri requestUri, string>.Dictionary param, bool withCookie ) : HttpWebRequest

HttpWebRequestオブジェクトを取得する。パラメータはGET/HEAD/DELETEではクエリに、POST/PUTではエンティティボディに変換される。

追加で必要となるHTTPヘッダや通信オプションは呼び出し元で付加すること (Timeout,AutomaticDecompression,AllowAutoRedirect,UserAgent,ContentType,Accept,HttpRequestHeader.Authorization,カスタムヘッダ) POST/PUTでクエリが必要な場合は、requestUriに含めること。

GetResponse ( HttpWebRequest webRequest, Bitmap &contentBitmap, string>.Dictionary headerInfo, bool withCookie ) : HttpStatusCode

HTTPの応答を処理し、応答ボディデータをBitmapとして返却します

リダイレクト応答の場合(AllowAutoRedirect=Falseの場合のみ)は、headerInfoインスタンスがあればLocationを追加してリダイレクト先を返却 WebExceptionはハンドルしていないので、呼び出し元でキャッチすること

GetResponse ( HttpWebRequest webRequest, string>.Dictionary headerInfo, bool withCookie ) : HttpStatusCode

HTTPの応答を処理します。応答ボディデータが不要な用途向け。

リダイレクト応答の場合(AllowAutoRedirect=Falseの場合のみ)は、headerInfoインスタンスがあればLocationを追加してリダイレクト先を返却 WebExceptionはハンドルしていないので、呼び出し元でキャッチすること

GetResponse ( HttpWebRequest webRequest, Stream contentStream, string>.Dictionary headerInfo, bool withCookie ) : HttpStatusCode

HTTPの応答を処理し、引数で指定されたストリームに書き込み

リダイレクト応答の場合(AllowAutoRedirect=Falseの場合のみ)は、headerInfoインスタンスがあればLocationを追加してリダイレクト先を返却 WebExceptionはハンドルしていないので、呼び出し元でキャッチすること gzipファイルのダウンロードを想定しているため、他形式の場合は伸張時に問題が発生する可能性があります。

GetResponse ( HttpWebRequest webRequest, string &contentText, string>.Dictionary headerInfo, bool withCookie ) : HttpStatusCode

HTTPの応答を処理し、応答ボディデータをテキストとして返却する

リダイレクト応答の場合(AllowAutoRedirect=Falseの場合のみ)は、headerInfoインスタンスがあればLocationを追加してリダイレクト先を返却 WebExceptionはハンドルしていないので、呼び出し元でキャッチすること テキストの文字コードはUTF-8を前提として、エンコードはしていません

ParseQueryString ( string queryString ) : NameValueCollection

クエリ形式(key1=value1&key2=value2&...)の文字列をkey-valueコレクションに詰め直し

UrlEncode ( string stringToEncode ) : string

2バイト文字も考慮したUrlエンコード

Private Methods

Method Description
CopyStream ( Stream inStream, Stream outStream ) : void

in/outのストリームインスタンスを受け取り、コピーして返却

GetHeaderInfo ( HttpWebResponse webResponse, string>.Dictionary headerInfo ) : void

headerInfoのキー情報で指定されたHTTPヘッダ情報を取得・格納する。redirect応答時はLocationヘッダの内容を追記する

SaveCookie ( CookieCollection cookieCollection ) : void

クッキーを保存。ホスト名なしのドメインの場合、ドメイン名から先頭のドットを除去して追加しないと再利用されないため

Method Details

CreateQueryString() protected method

クエリコレクションをkey=value形式の文字列に構成して戻す
protected CreateQueryString ( string>.IDictionary param ) : string
param string>.IDictionary クエリ、またはポストデータとなるkey-valueコレクション
return string

CreateRequest() protected method

HttpWebRequestオブジェクトを取得する。multipartでのバイナリアップロード用。
methodにはPOST/PUTのみ指定可能
protected CreateRequest ( string method, Uri requestUri, string>.Dictionary param, FileInfo>.List binaryFileInfo, bool withCookie ) : HttpWebRequest
method string HTTP通信メソッド(POST/PUT)
requestUri System.Uri 通信先URI
param string>.Dictionary form-dataで指定する名前と文字列のディクショナリ
binaryFileInfo FileInfo>.List form-dataで指定する名前とバイナリファイル情報のリスト
withCookie bool 通信にcookieを使用するか
return System.Net.HttpWebRequest

CreateRequest() protected method

HttpWebRequestオブジェクトを取得する。パラメータはGET/HEAD/DELETEではクエリに、POST/PUTではエンティティボディに変換される。
追加で必要となるHTTPヘッダや通信オプションは呼び出し元で付加すること (Timeout,AutomaticDecompression,AllowAutoRedirect,UserAgent,ContentType,Accept,HttpRequestHeader.Authorization,カスタムヘッダ) POST/PUTでクエリが必要な場合は、requestUriに含めること。
protected CreateRequest ( string method, Uri requestUri, string>.Dictionary param, bool withCookie ) : HttpWebRequest
method string HTTP通信メソッド(GET/HEAD/POST/PUT/DELETE)
requestUri System.Uri 通信先URI
param string>.Dictionary GET時のクエリ、またはPOST時のエンティティボディ
withCookie bool 通信にcookieを使用するか
return System.Net.HttpWebRequest

GetResponse() protected method

HTTPの応答を処理し、応答ボディデータをBitmapとして返却します
リダイレクト応答の場合(AllowAutoRedirect=Falseの場合のみ)は、headerInfoインスタンスがあればLocationを追加してリダイレクト先を返却 WebExceptionはハンドルしていないので、呼び出し元でキャッチすること
protected GetResponse ( HttpWebRequest webRequest, Bitmap &contentBitmap, string>.Dictionary headerInfo, bool withCookie ) : HttpStatusCode
webRequest System.Net.HttpWebRequest HTTP通信リクエストオブジェクト
contentBitmap System.Drawing.Bitmap [OUT]HTTP応答のボディデータを書き込むBitmap
headerInfo string>.Dictionary [IN/OUT]HTTP応答のヘッダ情報。ヘッダ名をキーにして空データのコレクションを渡すことで、該当ヘッダの値をデータに設定して戻す
withCookie bool 通信にcookieを使用する
return HttpStatusCode

GetResponse() protected method

HTTPの応答を処理します。応答ボディデータが不要な用途向け。
リダイレクト応答の場合(AllowAutoRedirect=Falseの場合のみ)は、headerInfoインスタンスがあればLocationを追加してリダイレクト先を返却 WebExceptionはハンドルしていないので、呼び出し元でキャッチすること
protected GetResponse ( HttpWebRequest webRequest, string>.Dictionary headerInfo, bool withCookie ) : HttpStatusCode
webRequest System.Net.HttpWebRequest HTTP通信リクエストオブジェクト
headerInfo string>.Dictionary [IN/OUT]HTTP応答のヘッダ情報。ヘッダ名をキーにして空データのコレクションを渡すことで、該当ヘッダの値をデータに設定して戻す
withCookie bool 通信にcookieを使用する
return HttpStatusCode

GetResponse() protected method

HTTPの応答を処理し、引数で指定されたストリームに書き込み
リダイレクト応答の場合(AllowAutoRedirect=Falseの場合のみ)は、headerInfoインスタンスがあればLocationを追加してリダイレクト先を返却 WebExceptionはハンドルしていないので、呼び出し元でキャッチすること gzipファイルのダウンロードを想定しているため、他形式の場合は伸張時に問題が発生する可能性があります。
protected GetResponse ( HttpWebRequest webRequest, Stream contentStream, string>.Dictionary headerInfo, bool withCookie ) : HttpStatusCode
webRequest System.Net.HttpWebRequest HTTP通信リクエストオブジェクト
contentStream Stream [OUT]HTTP応答のボディストリームのコピー先
headerInfo string>.Dictionary [IN/OUT]HTTP応答のヘッダ情報。ヘッダ名をキーにして空データのコレクションを渡すことで、該当ヘッダの値をデータに設定して戻す
withCookie bool 通信にcookieを使用する
return HttpStatusCode

GetResponse() protected method

HTTPの応答を処理し、応答ボディデータをテキストとして返却する
リダイレクト応答の場合(AllowAutoRedirect=Falseの場合のみ)は、headerInfoインスタンスがあればLocationを追加してリダイレクト先を返却 WebExceptionはハンドルしていないので、呼び出し元でキャッチすること テキストの文字コードはUTF-8を前提として、エンコードはしていません
protected GetResponse ( HttpWebRequest webRequest, string &contentText, string>.Dictionary headerInfo, bool withCookie ) : HttpStatusCode
webRequest System.Net.HttpWebRequest HTTP通信リクエストオブジェクト
contentText string [OUT]HTTP応答のボディデータ
headerInfo string>.Dictionary [IN/OUT]HTTP応答のヘッダ情報。ヘッダ名をキーにして空データのコレクションを渡すことで、該当ヘッダの値をデータに設定して戻す
withCookie bool 通信にcookieを使用する
return HttpStatusCode

InitializeConnection() public static method

通信クラスの初期化処理。タイムアウト値とプロキシを設定する
通信開始前に最低一度呼び出すこと
public static InitializeConnection ( int timeout, ProxyType proxyType, string proxyAddress, int proxyPort, string proxyUser, string proxyPassword ) : void
timeout int タイムアウト値(秒)
proxyType ProxyType なし・指定・IEデフォルト
proxyAddress string プロキシのホスト名orIPアドレス
proxyPort int プロキシのポート番号
proxyUser string プロキシ認証が必要な場合のユーザ名。不要なら空文字
proxyPassword string プロキシ認証が必要な場合のパスワード。不要なら空文字
return void

ParseQueryString() protected method

クエリ形式(key1=value1&key2=value2&...)の文字列をkey-valueコレクションに詰め直し
protected ParseQueryString ( string queryString ) : NameValueCollection
queryString string クエリ文字列
return System.Collections.Specialized.NameValueCollection

UrlEncode() protected method

2バイト文字も考慮したUrlエンコード
protected UrlEncode ( string stringToEncode ) : string
stringToEncode string エンコードする文字列
return string