关于C# 后台Post请求键值对中有List情况处理
2021/4/9 12:26:24
本文主要是介绍关于C# 后台Post请求键值对中有List情况处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
调用方法
public static void examInviteByUserCode(string UserAD, List<string> paperIds) { try { string sign = lightcloudsign(); string factoryCode = ConfigurationManager.AppSettings["factoryCode"].ToString(); string url = string.Format("https://api2.baidu.com/site/api/o?factoryCode={0}&sign={1}", factoryCode, sign); List<string> UserList = new List<string>(); UserList.Add(UserAD.ToLower()); foreach (var paperId in paperIds) { Dictionary<string, object> nvc = new Dictionary<string, object>(); nvc.Add("userCodeList", UserList); nvc.Add("paperId", paperId); string jsonString = JsonConvert.SerializeObject(nvc, Formatting.Indented); string res = Post(url, jsonString); TechnicalAssessmentCloudDto dics = JsonConvert.DeserializeObject<TechnicalAssessmentCloudDto>(res); LogHelper.Log("考试邀请成员:" + dics.ToString()); } } catch (Exception e) { LogHelper.Log("考试邀请成员报错:" + e.ToString()); } }
Post 方式
/// <summary> /// post方式请求 /// </summary> /// <param name="url"></param> /// <param name="content"></param> /// <returns></returns> public static string Post(string url, string content) { string result = string.Empty; byte[] data = Encoding.UTF8.GetBytes(content); HttpWebRequest r = HttpWebRequest.Create(url) as HttpWebRequest; r.ContentType = "application/json"; r.Method = "POST"; r.ContentLength = data.Length; using (Stream s = r.GetRequestStream()) { s.Write(data, 0, data.Length); } using (Stream s = r.GetResponse().GetResponseStream()) { StreamReader reader = new StreamReader(s); result = reader.ReadToEnd(); } return result; }
其中正常的Post键值对方式如下
public static string Post(string url, NameValueCollection nvc) { string content = BuildParms(nvc); string result = string.Empty; byte[] data = Encoding.UTF8.GetBytes(content); HttpWebRequest r = HttpWebRequest.Create(url) as HttpWebRequest; r.ContentType = "application/json"; r.Method = "POST"; r.ContentLength = data.Length; using (Stream s = r.GetRequestStream()) { s.Write(data, 0, data.Length); } using (Stream s = r.GetResponse().GetResponseStream()) { StreamReader reader = new StreamReader(s); result = reader.ReadToEnd(); } return result; } private static string BuildParms(NameValueCollection nvc) { StringBuilder sb = new StringBuilder(); foreach (string key in nvc) { sb.AppendFormat("{0}={1}&", HttpUtility.UrlEncode(key, Encoding.UTF8), HttpUtility.UrlEncode(nvc[key], Encoding.UTF8)); } if (sb.Length > 0) { sb.Remove(sb.Length - 1, 1); } return sb.ToString(); }
这篇关于关于C# 后台Post请求键值对中有List情况处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具