zoukankan      html  css  js  c++  java
  • asp.net web api 服务原生调用

    [TestClass]
     
    publicclassSampleTests
     
    {
       
    privateHttpSelfHostServer server =null;
       
    privatestring baseAddress =null;

        
    //Use TestInitialize to run code before running each test
       
    [TestInitialize()]
       
    publicvoidMyTestInitialize()
       
    {
          baseAddress
    =string.Format("http://{0}:9090",Environment.MachineName);

         
    HttpSelfHostConfiguration config =newHttpSelfHostConfiguration(this.baseAddress);
          config
    .Routes.MapHttpRoute("API Default","api/{controller}/{id}",new{ id =RouteParameter.Optional});

          server
    =newHttpSelfHostServer(config);
          server
    .OpenAsync().Wait();
       
    }
        
        
    //Use TestCleanup to run code after each test has run
       
    [TestCleanup()]
       
    publicvoidMyTestCleanup()
       
    {
         
    if(server !=null)
         
    {
              server
    .CloseAsync().Wait();
         
    }
       
    }

       
    [TestMethod]
       
    publicvoidGetTest()
       
    {
         
    string expectedResponse ="{'ID':1,'Name':'Saved Item'}".Replace("'","\"");

         
    HttpClient httpClient =newHttpClient();

         
    HttpRequestMessage request =newHttpRequestMessage();
          request
    .RequestUri=newUri(this.baseAddress +"/api/SampleItems/");
          request
    .Headers.Accept.Add(newMediaTypeWithQualityHeaderValue("application/json"));
          request
    .Method=HttpMethod.Get;

         
    HttpResponseMessage response = httpClient.SendAsync(request).Result;

         
    Assert.IsNotNull(response.Content);
         
    Assert.IsNotNull(response.Content.Headers.ContentType);
         
    Assert.AreEqual<string>("application/json", response.Content.Headers.ContentType.MediaType);
         
    Assert.AreEqual<string>(expectedResponse, response.Content.ReadAsStringAsync().Result);
       
    }

       
    [TestMethod]
       
    publicvoidPostAsString()
       
    {
         
    string expectedResponse ="{'ID':2,'Name':'New Item'}".Replace("'","\"");

         
    HttpClient httpClient =newHttpClient();

         
    string msgContent ="{'Name':'New Item'}".Replace("'","\"");

         
    HttpRequestMessage<string> request =newHttpRequestMessage<string>(msgContent,newMediaTypeHeaderValue("application/json"));
          request
    .RequestUri=newUri(this.baseAddress +"/api/SampleItems/");
          request
    .Headers.Accept.Add(newMediaTypeWithQualityHeaderValue("application/json"));
          request
    .Method=HttpMethod.Post;

         
    HttpResponseMessage response = httpClient.SendAsync(request).Result;

         
    Assert.IsNotNull(response.Content);
         
    Assert.IsNotNull(response.Content.Headers.ContentType);
         
    Assert.AreEqual<string>("application/json", response.Content.Headers.ContentType.MediaType);
         
    Assert.AreEqual<string>(expectedResponse, response.Content.ReadAsStringAsync().Result);
       
    }

       
    [TestMethod]
       
    publicvoidPostAsClass()
       
    {
         
    string expectedResponse ="{'ID':2,'Name':'New Item'}".Replace("'","\"");

         
    HttpClient httpClient =newHttpClient();

         
    SampleItem msgContent =newSampleItem{Name="New Item"};

         
    HttpRequestMessage<SampleItem> request =newHttpRequestMessage<SampleItem>(msgContent,newMediaTypeHeaderValue("application/json"));
          request
    .RequestUri=newUri(this.baseAddress +"/api/SampleItems/");
          request
    .Headers.Accept.Add(newMediaTypeWithQualityHeaderValue("application/json"));
          request
    .Method=HttpMethod.Post;

         
    HttpResponseMessage response = httpClient.SendAsync(request).Result;

         
    Assert.IsNotNull(response.Content);
         
    Assert.IsNotNull(response.Content.Headers.ContentType);
         
    Assert.AreEqual<string>("application/json", response.Content.Headers.ContentType.MediaType);
         
    Assert.AreEqual<string>(expectedResponse, response.Content.ReadAsStringAsync().Result);
       
    }


     
    }

     
    publicclassSampleItemsController:ApiController
     
    {
       
    publicSampleItemPost(SampleItem newItem)
       
    {
          newItem
    .ID =2;
         
    return newItem;
       
    }

       
    publicSampleItemGet()
       
    {
         
    returnnewSampleItem
                  
    {
                     ID
    =1,
                    
    Name="Saved Item"
                  
    };
       
    }
     
    }

     
    publicclassSampleItem
     
    {
       
    publicint ID {get;set;}
       
    publicstringName{get;set;}
     
    }

  • 相关阅读:
    vue2.0 + vux (六)NewsList 资讯页 及 NewsDetail 资讯详情页
    vue2.0 + vux (五)api接口封装 及 首页 轮播图制作
    vue2.0 + vux (四)Home页
    vue2.0 + vux (三)MySettings 页
    vue2.0 + vux (二)Footer组件
    vue2.0 + vux (一)Header 组件
    vue2 + typescript2 自定义过滤器
    flexible.js + makegrid.js 自适应布局
    vue-router钩子beforeRouteEnter函数获取到this实例
    weex 项目搭建
  • 原文地址:https://www.cnblogs.com/fx2008/p/2817513.html
Copyright © 2011-2022 走看看