zoukankan      html  css  js  c++  java
  • C# 调用 WebApi

    一.WebRequest方式

    Post:

    public static string HttpPost(string url, string body)
    {
        //ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
        Encoding encoding = Encoding.UTF8;
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "POST";
        request.Accept = "text/html, application/xhtml+xml, */*";
        request.ContentType = "application/json";
    
        byte[] buffer = encoding.GetBytes(body);
        request.ContentLength = buffer.Length;
        request.GetRequestStream().Write(buffer, 0, buffer.Length);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
        {
            return reader.ReadToEnd();
        }
    }
      
    // 调用
    string ss= HttpPost("http://localhost:41558/api/Demo/PostXXX", "{Code:"test089",Name:"test1"}");

    Get:

    public static string HttpGet(string url)
    {
        //ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
        Encoding encoding = Encoding.UTF8;
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "GET";
        request.Accept = "text/html, application/xhtml+xml, */*";
        request.ContentType = "application/json";
       
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
        {
            return reader.ReadToEnd();
        }
    }
    // 调用
    string ss = HttpGet("http://localhost:41558/api/Demo/GetXXX?Name=北京");

    二.HttpClient 方式

    Post:

         //提交数据操作
         //创建一个处理序列化的DataContractJsonSerializer
         DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(People));
         MemoryStream ms = new MemoryStream();
         //将资料写入MemoryStream
         serializer.WriteObject(ms, new People() { Id = 1, Name = "Hello ni" });
         //一定要在这设定Position
         ms.Position = 0;
         HttpContent content = new StreamContent(ms);//将MemoryStream转成HttpContent
         content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
         HttpClient client = new HttpClient();
         //由HttpClient发出Put Method
         HttpResponseMessage response = await client.PutAsync("http://localhost:41558/api/Demo"+ "/1", content);
         if (response.IsSuccessStatusCode)
             MessageBox.Show("成功");
             
             
         //删除操作         
         HttpClient client = new HttpClient();
         //由HttpClient发出Delete Method
         HttpResponseMessage response = await client.DeleteAsync("http://localhost:41558/api/Demo"+"/1");
         if (response.IsSuccessStatusCode)
             MessageBox.Show("成功"); 

    Get:

    using (WebClient client = new WebClient())
    {
         client.Headers["Type"] = "GET";
         client.Headers["Accept"] = "application/json";
         client.Encoding = Encoding.UTF8;
         client.DownloadStringCompleted += (senderobj, es) =>
         {
             var obj = es.Result;
         };
         client.DownloadStringAsync("http://localhost:41558/api/Demo");
    }
    *****************************************************
    *** No matter how far you go, looking back is also necessary. ***
    *****************************************************
  • 相关阅读:
    acwing272. 最长公共上升子序列
    哈夫曼编码简单实现
    Linked List Sorting
    jmeter-线程组
    css-书写规范
    mysql-踩坑记录
    vue-npm install
    css-选择器
    js-process对象
    linux-常用命令
  • 原文地址:https://www.cnblogs.com/gangle/p/9229091.html
Copyright © 2011-2022 走看看