码迷,mamicode.com
首页 > 其他好文 > 详细

钉钉开发中post异步调用问题

时间:2016-08-09 14:49:37      阅读:2802      评论:0      收藏:0      [点我收藏+]

标签:

  最近项目上在做钉钉开发中,经常会遇到使用post方式调用钉钉内部的方法(微信也有一样),这里涉及到跨域的post调用,但跨域一般都是用jsonp格式,而这个格式只支持get方式。尝试了挺多方法都没有返回 

{"errcode":43002,"errmsg":"需要POST请求"}

  让人很费解,用js方式不行,只能尝试从后台解决问题,然后写了如下方法:

/// <summary>
        /// 
        /// </summary>
        /// <param name="postUrl">post地址</param>
        /// <param name="paramData">参数</param>
        /// <param name="dataEncode">数据格式</param>
        /// <returns></returns>
        public static string HttpPost(string postUrl, string paramData, Encoding dataEncode)
        {
            string ret = string.Empty;
            try
            {
                byte[] byteArray = dataEncode.GetBytes(paramData); //转化
                HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
                webReq.Method = "POST";
                webReq.ContentType = "application/json; charset=utf-8";

                webReq.ContentLength = byteArray.Length;
                Stream newStream = webReq.GetRequestStream();
                newStream.Write(byteArray, 0, byteArray.Length);//写入参数
                newStream.Close();
                HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
                StreamReader sr = new StreamReader(response.GetResponseStream(), dataEncode);
                ret = sr.ReadToEnd();
                sr.Close();
                response.Close();
                newStream.Close();
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
            return ret;
        }

  测试了下还真行,所以记录下。前面的建立连接,获取access_token等就不多说,官网文档很全面。

钉钉开发中post异步调用问题

标签:

原文地址:http://www.cnblogs.com/xiangzhong/p/5753118.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!