HttpHelper代码(C#)
来源:互联网 发布:琅琊榜捏脸数据 编辑:程序博客网 时间:2024/05/29 08:34
public static class HttpHelper { /// <summary> /// 获取文件集合对应的ByteArrayContent集合 /// </summary> /// <param name="files"></param> /// <returns></returns> private static List<ByteArrayContent> GetFileByteArrayContent(HashSet<string> files) { List<ByteArrayContent> list = new List<ByteArrayContent>(); foreach (var file in files) { var fileContent = new ByteArrayContent(File.ReadAllBytes(file)); fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = Path.GetFileName(file) }; list.Add(fileContent); } return list; } /// <summary> /// 获取键值集合对应的ByteArrayContent集合 /// </summary> /// <param name="collection"></param> /// <returns></returns> private static List<ByteArrayContent> GetFormDataByteArrayContent(NameValueCollection collection) { List<ByteArrayContent> list = new List<ByteArrayContent>(); foreach (var key in collection.AllKeys) { var dataContent = new ByteArrayContent(Encoding.UTF8.GetBytes(collection[key])); dataContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = key }; list.Add(dataContent); } return list; } public static string PostFormData(string url, NameValueCollection collection) { using (HttpClient client = new HttpClient()) { string result_info = ""; client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/json"));//设定要响应的数据格式 using (var content = new MultipartFormDataContent())//表明是通过multipart/form-data的方式上传数据 { var formDatas = GetFormDataByteArrayContent(collection);//获取键值集合对应的ByteArrayContent集合 Action<List<ByteArrayContent>> act = (dataContents) => { //声明一个委托,该委托的作用就是将ByteArrayContent集合加入到MultipartFormDataContent中 foreach (var byteArrayContent in dataContents) { content.Add(byteArrayContent); } }; act(formDatas);//执行act try { var result = client.PostAsync(url, content).Result;//post请求 //确保HTTP成功状态值 result.EnsureSuccessStatusCode(); result_info = result.Content.ReadAsStringAsync().Result;//将响应结果显示在文本框内 } catch(Exception ex) { Common.WriteTextLog("http响应错误", ex.ToString(), DateTime.Now); } } return result_info; } } public static string PostFormFile(string url, HashSet<string> files_hash) { using (HttpClient client = new HttpClient()) { string result_info = ""; client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/json"));//设定要响应的数据格式 using (var content = new MultipartFormDataContent())//表明是通过multipart/form-data的方式上传数据 { var files = GetFileByteArrayContent(files_hash);//获取文件集合对应的ByteArrayContent集合 Action<List<ByteArrayContent>> act = (dataContents) => {//声明一个委托,该委托的作用就是将ByteArrayContent集合加入到MultipartFormDataContent中 foreach (var byteArrayContent in dataContents) { content.Add(byteArrayContent); } }; act(files);//执行act try { var result = client.PostAsync(url, content).Result;//post请求 //确保HTTP成功状态值 result.EnsureSuccessStatusCode(); result_info = result.Content.ReadAsStringAsync().Result;//将响应结果显示在文本框内 } catch (Exception ex) { Common.WriteTextLog("http响应错误", ex.ToString(), DateTime.Now); } } return result_info; } } public static string PostFormUrl(string url, Dictionary<string, string> key_value_set) { using (var client = new HttpClient()) { string result_info = ""; //使用FormUrlEncodedContent做HttpContent var content = new FormUrlEncodedContent(key_value_set); try { var result = client.PostAsync(url, content).Result;//post请求 //确保HTTP成功状态值 result.EnsureSuccessStatusCode(); result_info = result.Content.ReadAsStringAsync().Result;//将响应结果显示在文本框内 } catch (Exception ex) { Common.WriteTextLog("http响应错误", ex.ToString(), DateTime.Now); } return result_info; } } }
0 0
- HttpHelper代码(C#)
- C#HttpHelper类---苏飞版
- httphelper
- HttpHelper
- HttpHelper
- [C#]基于HttpWebRequest和HttpWebResponse的HttpHelper
- [C#]基于HttpWebRequest和HttpWebResponse的HttpHelper
- [C#HttpHelper]官方产品发布与源码下载---苏飞版
- C#HttpHelper官方产品发布与源码下载---苏飞版
- C# httphelper
- C#HttpHelper万能采集类源码和使用案例【超详细傻瓜式采集】
- HttpHelper类使用
- HttpHelper类使用方法
- net 2.0 httphelper
- HttpHelper.cs类
- c# uploadimage - httphelper
- c# .net4 httphelper
- c# .net2 httphelper
- C++ 初始化列表的构造函数
- POJ2386经典DFS深搜
- python网络爬虫爬取图片代码
- JDBC核心API
- Verilog 编程实验(1)-2输入逻辑门的输入与实现
- HttpHelper代码(C#)
- Python--第4天 一大波金融Library来袭之scipy篇
- 1002,大数求和
- Activity的生命周期
- iOS 画板(实现远程操控、教学)
- VS20xx编译出现无法将obj文件复制到bin下,对路径bin的访问被拒绝的解决办法
- 搜狗输入法安装 ubuntu 14.04.5
- JsonHelper(C#)
- 一个转圈读取中的读取中Dialog