C#、Asp.net 使用 WebClient Get Post(同步、异步)
2014-07-20 00:47
447 查看
一、C#、Asp.net 下使用WebClient Get Post 同步 异步请求,直接贴代码
1、通用Http类
2、页面请求类
1、通用Http类
using System; using System.Globalization; using System.Net; using System.Text; namespace Test { public class HttpCommon { /// <summary> /// Http同步Get同步请求 /// </summary> /// <param name="url">Url地址</param> /// <param name="encode">编码(默认UTF8)</param> /// <returns></returns> public static string HttpGet(string url, Encoding encode = null) { string result; try { var webClient = new WebClient { Encoding = Encoding.UTF8 }; if (encode != null) webClient.Encoding = encode; result = webClient.DownloadString(url); } catch (Exception ex) { result = ex.Message; } return result; } /// <summary> /// Http同步Get异步请求 /// </summary> /// <param name="url">Url地址</param> /// <param name="callBackDownStringCompleted">回调事件</param> /// <param name="encode">编码(默认UTF8)</param> public static void HttpGetAsync(string url, DownloadStringCompletedEventHandler callBackDownStringCompleted = null, Encoding encode = null) { var webClient = new WebClient { Encoding = Encoding.UTF8 }; if (encode != null) webClient.Encoding = encode; if (callBackDownStringCompleted != null) webClient.DownloadStringCompleted += callBackDownStringCompleted; webClient.DownloadStringAsync(new Uri(url)); } /// <summary> /// Http同步Post同步请求 /// </summary> /// <param name="url">Url地址</param> /// <param name="postStr">请求Url数据</param> /// <param name="encode">编码(默认UTF8)</param> /// <returns></returns> public static string HttpPost(string url, string postStr = "", Encoding encode = null) { string result; try { var webClient = new WebClient { Encoding = Encoding.UTF8 }; if (encode != null) webClient.Encoding = encode; var sendData = Encoding.GetEncoding("GB2312").GetBytes(postStr); webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); webClient.Headers.Add("ContentLength", sendData.Length.ToString(CultureInfo.InvariantCulture)); var readData = webClient.UploadData(url, "POST", sendData); result = Encoding.GetEncoding("GB2312").GetString(readData); } catch (Exception ex) { result = ex.Message; } return result; } /// <summary> /// Http同步Post异步请求 /// </summary> /// <param name="url">Url地址</param> /// <param name="postStr">请求Url数据</param> /// <param name="callBackUploadDataCompleted">回调事件</param> /// <param name="encode"></param> public static void HttpPostAsync(string url, string postStr = "", UploadDataCompletedEventHandler callBackUploadDataCompleted = null, Encoding encode = null) { var webClient = new WebClient { Encoding = Encoding.UTF8 }; if (encode != null) webClient.Encoding = encode; var sendData = Encoding.GetEncoding("GB2312").GetBytes(postStr); webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); webClient.Headers.Add("ContentLength", sendData.Length.ToString(CultureInfo.InvariantCulture)); if (callBackUploadDataCompleted != null) webClient.UploadDataCompleted += callBackUploadDataCompleted; webClient.UploadDataAsync(new Uri(url), "POST", sendData); } } }
2、页面请求类
using System; using System.Net; using System.Text; using System.Web.UI; namespace Test { public partial class WebForm3 : Page { protected void Page_Load(object sender, EventArgs e) { Response.Write(HttpCommon.HttpGet("http://localhost:14954/WebForm4.aspx")); //Get同步 HttpCommon.HttpGetAsync("http://localhost:14954/WebForm4.aspx"); //Get异步 HttpCommon.HttpGetAsync("http://localhost:14954/WebForm4.aspx", DownStringCompleted); //Get异步回调 Response.Write(HttpCommon.HttpPost("http://localhost:14954/WebForm4.aspx", "post=POST")); //Post同步 HttpCommon.HttpPostAsync("http://localhost:14954/WebForm4.aspx", "post=POST"); //Post异步 HttpCommon.HttpPostAsync("http://localhost:14954/WebForm4.aspx", "post=POST", UploadDataCompleted); //Post异步回调 } private void DownStringCompleted(object sender, DownloadStringCompletedEventArgs e) { Response.Write(e.Result); } private void UploadDataCompleted(object sender, UploadDataCompletedEventArgs e) { Response.Write(Encoding.GetEncoding("GB2312").GetString(e.Result)); } } }
相关文章推荐
- OKHTTP的get和post的同步使用和异步使用
- ASP.NET Web API(一):使用初探,GET和POST数据
- IOS网络篇10之NSURLConnection的使用(同步异步下载getpost)
- iOS网络请求总结、GET、POST、同步、异步代码块、异步代理、第三方AFNetWorking2.0使用
- asp.net Get和Post的使用
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(4):异步通讯层生成的客户端代理类、使用HTTP GET进行调用
- ASP.NET MVC - 使用Post, Redirect, Get (PRG)模式
- ASP.NET Core使用HttpClient的同步和异步请求
- asp.net 自定义 Http Post,Get,WebClient ,TcpClient 请求url地址
- ASP.NET Web API(一):使用初探,GET和POST数据
- ASP.NET MVC - 使用Post, Redirect, Get (PRG)模式(转)
- 在asp.net中使用异步同步rss
- asp.net C# 向web网站GET、POST 数据
- ASP.NET下AJAX.AJAXMETHOD使用方法,微软ajax 异步 同步的修改方法
- ASP.NET MVC - 使用Post, Redirect, Get (PRG)模式
- 在asp.net中使用异步同步rss
- ASP.NET MVC同步和异步的使用总结
- 在asp.net中使用异步同步rss
- ASP.NET C#后台调用公网接口(GET, POST)
- asp.net(c#)使用HttpWebRequest附加携带请求参数以post方式模拟上传大文件(以图片为例)到Web服务器端