C# WebAPI

发布时间 2023-09-26 21:10:29作者: KevinSteven

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 button_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.GetResponseAStream(),Encoding.UTF8)){

  return reader.ReadToEnd();

}

}

 2.HttpClient

Post: 

private async void button_Click(object sender,EventArgs e)

{

  HttpClient client = new HttpClient();

        //由HttpClient发出D饿了么  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"});

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

}