栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

C#如何正确发出http Web GET请求

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#如何正确发出http Web GET请求

服务器有时会压缩其响应以节省带宽,当这种情况发生时,您需要在尝试读取响应之前对其进行解压缩。幸运的是,.NET框架可以自动执行此操作,但是,我们必须打开该设置。

这是如何实现此目的的示例。

string html = string.Empty;string url = @"https://api.stackexchange.com/2.2/answers?order=desc&sort=activity&site=stackoverflow";HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);request.AutomaticDecompression = DecompressionMethods.GZip;using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())using (Stream stream = response.GetResponseStream())using (StreamReader reader = new StreamReader(stream)){    html = reader.ReadToEnd();}Console.WriteLine(html);

编辑 17/11/23

更新以抛出使用GET请求和POST异步的示例


得到

public string Get(string uri){    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);    request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;    using(HttpWebResponse response = (HttpWebResponse)request.GetResponse())    using(Stream stream = response.GetResponseStream())    using(StreamReader reader = new StreamReader(stream))    {        return reader.ReadToEnd();    }}

取得异步

public async Task<string> GetAsync(string uri){    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);    request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;    using(HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())    using(Stream stream = response.GetResponseStream())    using(StreamReader reader = new StreamReader(stream))    {        return await reader.ReadToEndAsync();    }}

POST 在您希望使用其他HTTP方法(例如PUT,DELETE和ETC)时
包含参数

method

public string Post(string uri, string data, string contentType, string method = "POST"){    byte[] dataBytes = Encoding.UTF8.GetBytes(data);    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);    request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;    request.ContentLength = dataBytes.Length;    request.ContentType = contentType;    request.Method = method;    using(Stream requestBody = request.GetRequestStream())    {        requestBody.Write(dataBytes, 0, dataBytes.Length);    }    using(HttpWebResponse response = (HttpWebResponse)request.GetResponse())    using(Stream stream = response.GetResponseStream())    using(StreamReader reader = new StreamReader(stream))    {        return reader.ReadToEnd();    }}

POST异步 在您希望使用其他HTTP方法(例如PUT,DELETE和ETC)时
包含参数

method

public async Task<string> PostAsync(string uri, string data, string contentType, string method = "POST"){    byte[] dataBytes = Encoding.UTF8.GetBytes(data);    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);    request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;    request.ContentLength = dataBytes.Length;    request.ContentType = contentType;    request.Method = method;    using(Stream requestBody = request.GetRequestStream())    {        await requestBody.WriteAsync(dataBytes, 0, dataBytes.Length);    }    using(HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())    using(Stream stream = response.GetResponseStream())    using(StreamReader reader = new StreamReader(stream))    {        return await reader.ReadToEndAsync();    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/442684.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号