C# HttpWebResponse 调用WebApi

最近有个接口项目,主要运用了webApi,网上查了些资料,再次总结一下,希望帮助到大家。

客户端主要运用到post方法用的是HttpWebResponse

webApi接受客户端传的参数 一种是地址传过来的参数  一种是http的请求体中传过来的

服务器webApi 接受代码    

WebApi程序可在方法参数前加[FromBody]标识,表示该参数值应该从请求的Body中获取,而不是从URL中获取

C# HttpWebResponse 调用WebApi_第1张图片

客户端 请求代码   

主要注意  request.ContentType 如果传的json类型 要设置成 “application/json; charset=utf-8

而 传的string 类型 要设置成 “application/x-www-form-urlencoded” 参数前面要加“=”

如果传参 (string类型) 中有 有+ 传过去就会变成 空格 解决办法是传参之前把加号替换成"%2b"

 public static string HttpPost(string url, string body)
        {
            Encoding encoding = Encoding.UTF8;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.Accept = "textml, application/xhtml+xml, */*";
            request.ContentType = "application/x-www-form-urlencoded";
            //request.ContentType = "application/json; charset=utf-8";

            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();
            }
        }
客户端调用的方法

C# HttpWebResponse 调用WebApi_第2张图片


你可能感兴趣的:(C#接口)