WebAPI-HTTPプログラミングモデル
5628 ワード
問題を持って考えてください。皆さん、こんにちは。何ですか?何が含まれていますか?何ができますか
メッセージ
HTTPプログラミングモデルの核心はメッセージ抽象であり、HttPRequest Message、HttpResonseMessageとして、クライアントとサービス端末の間で要求と応答メッセージを交換するために使用される。
HttpMethod類は静的性質のセットを含んでいます。 HttpRequest Headers:要求ヘッダ を含む。 HttpResonseHeaders:レスポンスヘッダ を含む。 HttpContentHeaders:コンテンツヘッダ を含む。
メッセージの内容
HttpContentは非仮想公共方法を含んでいる。 Task ReadAstringAsync() Task ReadAsByteArayArync() Task ReadAstreamAync() Task CopyToAsync 第1の方法は、送信方式を押して元のメッセージコンテンツにアクセスするために使用される。一つのストリームをCopyArync方法に渡し、メッセージの内容をこのストリームに転送する。
もちろん拡張も可能です。
public override Task ReadContentAsync(HttpRequest Message request) IEnumerable formaters,IFFT Logter formater Loggar)
メッセージ
HTTPプログラミングモデルの核心はメッセージ抽象であり、HttPRequest Message、HttpResonseMessageとして、クライアントとサービス端末の間で要求と応答メッセージを交換するために使用される。
HttpMethod類は静的性質のセットを含んでいます。
private static readonly HttpMethod getMethod = new HttpMethod("GET");
private static readonly HttpMethod putMethod = new HttpMethod("PUT");
private static readonly HttpMethod postMethod = new HttpMethod("POST");
private static readonly HttpMethod deleteMethod = new HttpMethod("DELETE");
private static readonly HttpMethod headMethod = new HttpMethod("HEAD");
private static readonly HttpMethod optionsMethod = new HttpMethod("OPTIONS");
private static readonly HttpMethod traceMethod = new HttpMethod("TRACE")
槍先メッセージの内容
HttpContentは非仮想公共方法を含んでいる。
using(car client=new HtppClient())
{
var response=
await client.GetAsync("",HttpCompletionOption.ResponseHeadersRead);
response.EnsureSuccessStatusCode();
var ms=new MemorySteam();
await response.Content.CopyToAsync(ms);
Assert.True(ms.Length>0);
}
ReadAsStreamAync()・引取方式でアクセスすることもできます。この方法は非同期的に一つのストリームを返す。 using(var client=new HttpClient())
{
var response = await client.GetAsync("");
response.EnsureSuccessStatusCode();
var steam = await response.Content.ReadAsStreamAsync();
var buffer = new byte[2 * 1024];
var len = await steam.ReadAsync(buffer, 0, buffer.Length);
}
ReadAstringAsyncとReadAsByteArayArync-非同期はメッセージ内容のバッファコピーを提供する。ReadAstringAyncは元のバイト内容を返し、ReadAsByteArayAryncは内容を文字列に復号して返します。もちろん拡張も可能です。
public override Task ReadContentAsync(HttpRequest Message request) IEnumerable formaters,IFFT Logter formater Loggar)