分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

HttpClientUtil

发布时间:2023-09-06 01:55责任编辑:顾先生关键词:暂无标签
using System;using System.Collections.Generic;using System.IO;using System.Net.Http;using System.Net.Http.Headers;using System.Text;namespace Qka.UsersApi.Test{ ???public static class HttpClientUtil ???{ ??????????????/// <summary> ???????/// 获取要提交的信息 ???????/// </summary> ???????/// <typeparam name="T"></typeparam> ???????/// <param name="model"></param> ???????/// <returns></returns> ???????public static MultipartFormDataContent GetPostModelData<T>(T model) ???????{ ???????????var modelType = typeof(T); ???????????var formData = new MultipartFormDataContent(); ???????????//遍历SendData的所有成员 ???????????foreach (var item in modelType.GetProperties()) ???????????{ ???????????????if (item.GetValue(model) == null) ???????????????{ ???????????????????continue; ???????????????} ???????????????var content = new StringContent(((string)item.GetValue(model).ToString())); ???????????????formData.Add(content, item.Name); ???????????} ???????????return formData; ???????} ???????public static string PostData<T>(this HttpClient client, string url, T model) ???????{ ???????????client.MaxResponseContentBufferSize = 256000; ???????????client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36"); ???????????var postModelData = HttpClientUtil.GetPostModelData<T>(model); ???????????var response = client.PostAsync(url, postModelData).Result; ???????????return response.Content.ReadAsStringAsync().Result; ???????} ???????public static string GetData(this HttpClient client, string url, Dictionary<string, string> formData=null) ???????{ ???????????client.MaxResponseContentBufferSize = 256000; ???????????client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36"); ???????????if (formData == null || formData.Count <= 0) ???????????{ ???????????????return client.GetAsync(url).Result.Content.ReadAsStringAsync().Result; ???????????} ???????????var paraData = formData.GetQueryString(); ???????????var questionmark = "?" + paraData; ???????????????????????????????????var response = client.GetAsync(url + questionmark ).Result; ???????????var restr = response.Content.ReadAsStringAsync().Result; ???????????if(string.IsNullOrEmpty(restr)) ???????????{ ???????????????var eeee = 11111; ???????????} ???????????return restr; ???????} ???????public static string PutData<T>(this HttpClient client, string url, T model) ???????{ ???????????client.MaxResponseContentBufferSize = 256000; ???????????client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36"); ???????????var postModelData = HttpClientUtil.GetPostModelData<T>(model); ???????????var response = client.PutAsync(url, postModelData).Result; ???????????return response.Content.ReadAsStringAsync().Result; ???????} ???????public static string DeleteData(this HttpClient client, string url, Dictionary<string, string> formData) ???????{ ???????????client.MaxResponseContentBufferSize = 256000; ???????????client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36"); ???????????if (formData == null || formData.Count <= 0) ???????????{ ???????????????return client.GetAsync(url).Result.Content.ReadAsStringAsync().Result; ???????????} ???????????var paraData = formData.GetQueryString(); ???????????var response = client.DeleteAsync(url + "?" + paraData).Result; ???????????return response.Content.ReadAsStringAsync().Result; ???????} ???????/// <summary> ???????/// 组装QueryString的方法 ???????/// 参数之间用&连接,首位没有符号,如:a=1&b=2&c=3 ???????/// </summary> ???????/// <param name="formData"></param> ???????/// <returns></returns>public static string GetQueryString(this Dictionary<string, string> formData) ???????{ ???????????if (formData == null || formData.Count == 0) ???????????{ ???????????????return ""; ???????????} ???????????StringBuilder sb = new StringBuilder(); ???????????var i = 0; ???????????foreach (var kv in formData) ???????????{ i++; ???????????????sb.AppendFormat("{0}={1}", kv.Key, kv.Value); ???????????????if (i < formData.Count) ???????????????{ ???????????????????sb.Append("&"); ???????????????} ???????????} ???????????return sb.ToString(); ???????} ???}}

HttpClientUtil

原文地址:https://www.cnblogs.com/qiywtc/p/9057451.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved