方法一:直接使用
//string _url = "https://oapi.dingtalk.com/robot/send?access_token";
////json参数
//string jsonParam = "{msgtype: \"markdown\",markdown:{title: \"异常测试1\",text: \"车牌号豫A88999\"},at:{isAtAll: \"true\"}}";
//var request = (HttpWebRequest)WebRequest.Create(_url);
//request.Method = "POST";
//request.ContentType = "application/json;charset=UTF-8";
//byte[] byteData = Encoding.UTF8.GetBytes(jsonParam);
//int length = byteData.Length;
//request.ContentLength = length;
//Stream writer = request.GetRequestStream();
//writer.Write(byteData, 0, length);
//writer.Close();
//var response = (HttpWebResponse)request.GetResponse();
//var responseString = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")).ReadToEnd();
//MessageBox.Show(responseString.ToString());
方法二:封装函数使用:
try
{
string PostUrl1 = "https://oapi.dingtalk.com/robot/send?access_token";
string errorStr = string.Format("车牌信息:豫A88888\r\n车道编号:01\r\n采样完成时间:{0}\r\n取样重量:0.26", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
var patientinfo = "{msgtype: \"markdown\",markdown:{title: \"异常测试1\",text: \""+ errorStr + "\"},at:{isAtAll: \"true\"}}";
//string sendData = JsonConvert.SerializeObject(patientinfo);
string m = HttpPost(PostUrl1, patientinfo);
JObject jos = (JObject)JsonConvert.DeserializeObject(m);
RecordLog(string.Format("接收钉钉返回信息msg:{0};code:{1}", jos["errmsg"].ToString(), jos["errcode"].ToString()));
}
catch (Exception ex)
{
string exstr = string.Format(string.Format("钉钉Message sent ERROR:{0}", ex.Message));
RecordLog(exstr);
MessageBox.Show(exstr);
}
两种方式是一摸一样的代码,花了一天的时间测试出来问题出在josn串格式不对才一直发送失败