これは完全にメモ書きです。しかも Web API というより System.Net.Http 名前空間に含まれている面白そうなクラスです。
概要
RFC 2616 で定義されている〜という言葉が多い。つまり HTTP/1.1 のこと。
リクエスト
- HttpRequestMessage
- HttpRequestMessage
- HttpRequestMessage
- HttpMethod
- HttpRequestHeaders
レスポンス
- HttpResponseMessage
- HttpResponseMessage
- HttpResponseMessage
- HttpResponseHeaders
コンテント
- HttpContent
- FormUrlEncodedContent
- PushStreamContent
- ObjectContent
- ObjectContent
- ObjectContent
- HttpContentHeaders
メディアタイプ
- MediaTypeFormatter
- JsonMediaTypeFormatter
- XmlMediaTypeFormatter
- MediaTypeHeaderValue
非同期処理
public class FooController : ApiController { public async Task<string> Get() { return await Task.StartNew(() => "ほげ"); } }
サーバからのプッシュ
public class FooController : ApiController { public HttpResponseMessage Get(HttpRequestMessage request) { var response = request.CreateResponse(); response.Content = new PushStreamContent((stream, content, context) => { // ストリームが使えるようになったら呼ばれるので書き込む }); return response; } }