WebApi單元測試記錄

來源:互聯網
上載者:User

標籤:

一、MessageHandler不一定是全域的,也可以只應用到指定的Router上
1、定義一個handler// PipelinesHttpMessageHandler affiliateShipmentsPipeline =HttpClientFactory.CreatePipeline(new HttpControllerDispatcher(config),new[] { new AffiliateShipmentsDispatcher() }); 2、將handler應用在指定的router上// Routesroutes.MapHttpRoute("AffiliateShipmentsHttpRoute","api/affiliates/{key}/shipments/{shipmentKey}",defaults: new { controller = "AffiliateShipments", shipmentKey = RouteParameter.Optional },constraints: new { key = new GuidRouteConstraint(), shipmentKey = new GuidRouteConstraint() },handler: affiliateShipmentsPipeline); 

 

二、HttpRequest頭添加Authorization資訊
HttpRequestMessage request = ConstructRequest(httpMethod, uri, mediaTypes);request.Headers.Authorization = new AuthenticationHeaderValue("Basic",EncodeToBase64(string.Format("{0}:{1}", username, password)));  private static string EncodeToBase64(string value) {byte[] toEncodeAsBytes = Encoding.UTF8.GetBytes(value);return Convert.ToBase64String(toEncodeAsBytes);}

 

三、類比非同步發送Http請求
internal static async Task<HttpResponseMessage> GetResponseAsync(HttpConfiguration config, HttpRequestMessage request) { using (var httpServer = new HttpServer(config))using (var client = HttpClientFactory.Create(innerHandler: httpServer)) { return await client.SendAsync(request);}}

 

四、類比WebApi HttpRequestMessage的Content
request.Content = new ObjectContent<ShipmentRequestModel>(shipmentRequestModel, new System.Net.Http.Formatting.JsonMediaTypeFormatter());

 

 五、HttpRequestMessage對象擷取依賴注入介面
internal static class HttpRequestMessageExtensions { internal static IShipmentService GetShipmentService(this HttpRequestMessage request) { return request.GetServic e<IShipmentService>();} internal static IMembershipService GetMembershipService(this HttpRequestMessage request) { return request.GetService<IMembershipService>();} private static TService GetService<TService>(this HttpRequestMessage request) { IDependencyScope dependencyScope = request.GetDependencyScope();TService service = (TService)dependencyScope.GetService(typeof(TService)); return service;}}

 

WebApi單元測試記錄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.