C# 后台请求api

复制代码
 /// <summary>  
       /// 指定Post地址使用Get 方式获取全部字符串  
       /// </summary>  
       /// <param name="url">请求后台地址</param>  
       /// <returns></returns>  
       public static string Post(string url, Dictionary<string, string> dic)
       {
           string result = "";
           HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
           var header = new WebHeaderCollection { { "Authorization", "Basic " + Base64.Base64Code(dic["username"] + ":" + dic["password"]) } };
           req.Headers = header;
           req.Method = "POST";
           req.ContentType = "application/x-www-form-urlencoded";
           #region 添加Post 参数
           StringBuilder builder = new StringBuilder();
           int i = 0;
           foreach (var item in dic)
           {
               if (i > 0)
                   builder.Append("&");
               builder.AppendFormat("{0}={1}", item.Key, item.Value);
               i++;
           }
           byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
           req.ContentLength = data.Length;
           using (Stream reqStream = req.GetRequestStream())
           {
               reqStream.Write(data, 0, data.Length);
               reqStream.Close();
           }
           #endregion
           HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
           Stream stream = resp.GetResponseStream();
           //获取响应内容  
           using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
           {
               result = reader.ReadToEnd();
           }
           return result;
       }  
复制代码

 

posted @   .NET_海  阅读(297)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示