语言吧技术网欢迎您投稿,程序员的世界我懂你!=====>点此登录投搞
当前位置: 首页 >>ASP.NET >>C#接口开发 >>C# 调用WebApi

C# 调用WebApi

2018/6/27 20:37:24 0人评论 8393次 作者:admin

C# 调用WebApi…

1.WebRequest方式

Post:

private void button1_Click(object sender, EventArgs e)

        {

           string ss= HttpPost("http://localhost:41558/api/Demo/PostXXX", "{Code:\"test089\",Name:\"test1\"}");

        }


        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();

            }

        }

Get:


private void button1_Click(object sender, EventArgs e)

        {

            string ss = HttpGet("http://localhost:41558/api/Demo/GetXXX?Name=北京");

        }


        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();

            }

        }


2.HttpClient 方式

Post:


private async void button2_Click(object sender, EventArgs e)

{

     HttpClient client = new HttpClient();

     //由HttpClient发出Delete Method

     HttpResponseMessage response = await client.DeleteAsync("http://localhost:41558/api/Demo"+"/1");

     if (response.IsSuccessStatusCode)

         MessageBox.Show("成功");

}


private async void button3_Click(object sender, EventArgs e)

{

     //创建一个处理序列化的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("成功");

}


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");

}



CopyRight:2007-2018 语言吧 备案ICP:湘ICP备09009000号-15 http://www.yuyanba.com
欢迎【广东省 广州市】的朋友
内容与素材部分来源于网络,如有侵权请告知删除
分享按钮