C# Post 接口请求样例

本文介绍了如何在C#中封装HttpPost请求,设置请求头为application/json,以及进行MD5加密。同时展示了如何处理响应数据和反序列化结果。示例代码包括发送批量短信的接口调用过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很久没有写接口了,正好今天写到了接口,记录一下

封装Http Post请求,这里的请求头是 request.ContentType = “application/json”; 复制后根据实际去修改,不要生搬硬套搞拿来主义:

        /// <summary>
        /// 发送http请求,
        /// </summary>
        /// <param name="url"></param>
        /// <param name="jsonParam"></param>
        /// <returns></returns>
        public static HttpWebResponse CreatePostHttpResponse(string url, string jsonParam)
        {
            HttpWebRequest request = null;

            request = WebRequest.Create(url) as HttpWebRequest;
            request.Proxy = null;
            request.Method = "POST";
            request.ContentType = "application/json";


            byte[] data = Encoding.UTF8.GetBytes(jsonParam);
            request.ContentLength = data.Length;
            using (Stream stream = request.GetRequestStream())
            {
                stream.Write(data, 0, data.Length);
            }

            return request.GetResponse() as HttpWebResponse;
        }

封装获取请求的数据的方法

 public static string GetResponseString(HttpWebResponse webresponse)
        {
            using (Stream s = webresponse.GetResponseStream())
            {
                StreamReader reader = new StreamReader(s, Encoding.UTF8);
                return reader.ReadToEnd();

            }
        }

封装反序列化时需要用到的class:

  public class TextMsg 
    {
        public int resultCode { get; set; }

        public string resultMsg { get; set; }

        public string resultMap { get; set; }
    }

准备工作都做好了,实现接口吧

public IActionResult Text() 
        {
            var time = DateTime.Now.ToString("yyyyMMddHHmmss");
            //MD5加密
            var sign =GetMD5_Utf8("nqk6E4LP********e5Qm" + time + "Kyw****NrU");
            var phoneList = new List<string>();
            phoneList.Add("152*******73");
            phoneList.Add("155*******03");
            var jsPhone = JsonConvert.SerializeObject(phoneList);
            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("applicationId", "nqk****Rb");
            dic.Add("password", "i7****Qm");
            dic.Add("requestTime", time);
            dic.Add("sign", sign);
            dic.Add("funCode", "1002");
            dic.Add("mobiles", phoneList);
            dic.Add("content", "你好");
            //序列化
            var json = JsonConvert.SerializeObject(dic);
            var res = GetResponseString(CreatePostHttpResponse("http://api.***********/batchSendMessage", json));
            var result = JsonConvert.DeserializeObject<TextMsg>(res);
            return Json(result);
        }

接口返回内容:
在这里插入图片描述

ok,搞定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值