我的语言是.net
首先我的参数列表
private static string SendMsg(string msgtype,string msgcontent,AccessToken accesstoken, string userid_list)
上面方法一看,简单,应该并没有什么问题,顺便贴出DingMsg方法
{
string str = "";
string url = Urls.message_send2;
//这里userAgent需要特殊设置吗,我代码里是空
string userAgent = "";
Dictionary<string, object> postParameters = new Dictionary<string, object>();
postParameters.Add("method", "dingtalk.corp.message.corpconversation.asyncsend");
postParameters.Add("session", accesstoken.Value);
postParameters.Add("timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
postParameters.Add("v", "2.0");
postParameters.Add("format", "json");
postParameters.Add("msgtype", msgtype);
postParameters.Add("agent_id", ConfigHelper.FetchAgentID());
postParameters.Add("userid_list", userid_list);
//postParameters.Add("dept_id_list", "45727508");
postParameters.Add("msgcontent", msgcontent);
System.Net.HttpWebResponse webResponse = HttpFormUpload.Dingmsg(url, userAgent, postParameters);
// Process response
System.IO.StreamReader responseReader = new System.IO.StreamReader(webResponse.GetResponseStream());
string content = responseReader.ReadToEnd();
webResponse.Close();
str = content;
HApp.Core.Helper.LogHelper.WriteLog("msg", str);
HApp.Core.Helper.LogHelper.WriteLog("token", accesstoken.Value);
return str;
}
public static HttpWebResponse Dingmsg(string postUrl, string userAgent, Dictionary<string, object> postParameters)
{
string formDataBoundary = String.Format("----------{0:N}", Guid.NewGuid());
string contentType = "Content-Type: application/x-www-form-urlencoded;charset=utf-8";
byte[] formData = GetMultipartFormData(postParameters, formDataBoundary);
return Dingmsg(postUrl, userAgent, contentType, formData);
}
private static HttpWebResponse Dingmsg(string postUrl, string userAgent, string contentType, byte[] formData)
{
HttpWebRequest request = WebRequest.Create(postUrl) as HttpWebRequest;
if (request == null)
{
throw new NullReferenceException("request is not a http request");
}
// Set up the request properties.
request.Method = "POST";
request.ContentType = contentType;
request.UserAgent = userAgent;
request.CookieContainer = new CookieContainer();
request.ContentLength = formData.Length;
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(formData, 0, formData.Length);
requestStream.Close();
}
return request.GetResponse() as HttpWebResponse;
}
返回的不是我请求参数设置的json类型,而是xml(很奇怪,说明我的参数它应该是没有收到)
下面贴出返回结果
<?xml version="1.0" encoding="utf-8" ?><error_response><code>21</code><msg>Missing method</msg><sub_msg>http传入的参数加入method字段</sub_msg><request_id>ztb762y5fpog</request_id></error_response><!--top010178045103.n.et2-->
有大佬知道,这个异步消息怎么推送吗,或者有个简单demo什么的
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。