微信企业号开发:上传文件错误44001,"errmsg":"empty media data,

上传文件是经常出现错误"errcode":44001,"errmsg":"empty media data

对照文档一直很难发发小错误,最后才发现是因为缺少了回车换行符

1开始boundary之后需要一个回车换行

2Content-Type之后需要两个回车换行

3文件内容结束后需要一个回车换行

4结束boundary之后需要一个回车换行

  /// <summary>
        /// 执行带文件上传的HTTP POST请求。
        /// </summary>
        /// <param name="url">请求地址</param>       
        /// <param name="fileParams">请求文件参数</param>
        /// <returns>HTTP响应</returns>
        public string DoPostFile(string url, FileItem fileParams)
        {
            try
            {
                string boundary = DateTime.Now.Ticks.ToString("X"); // 随机分隔线
                string startboundary = "--" + boundary;
                string endboundary = "--" + boundary + "--";
                HttpWebRequest req = GetWebRequest(url, "POST");
                req.ContentType = "multipart/form-data;boundary=" + boundary;
                System.IO.Stream reqStream = req.GetRequestStream();
                //开始结束的换行符不能少,否则是44001,"errmsg":"empty media data, 
                byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n" + endboundary + "\r\n");
                string name = fileParams.GetFileName();
                string filename = fileParams.GetFileName();
                //结束的两个换行符不能少,否则是44001,"errmsg":"empty media data,
                string fileTemplate = "Content-Disposition: form-data; name=\"{0}\";filename=\"{1}\"; filelength={2}\r\nContent-Type: {3}\r\n\r\n";
                FileItem fileItem = fileParams;
                byte[] fileBytes = fileItem.GetContent();
                StringBuilder sb = new StringBuilder();
                sb.Append(startboundary);
                sb.Append("\r\n");
                sb.Append(string.Format(fileTemplate, name, filename, fileBytes.Length, fileItem.GetMimeType()));
                // LogInfo.Error("sb.ToString()=" + sb.ToString());
                byte[] Content = Encoding.UTF8.GetBytes(sb.ToString());
                //开始标志
                reqStream.Write(Content, 0, Content.Length);
                //文件内容
                reqStream.Write(fileBytes, 0, fileBytes.Length);
                //结束标志
                reqStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
                // LogInfo.Error("endBoundaryBytes=" + endboundary);
                reqStream.Close();
                HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
                Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);
                return GetResponseAsString(rsp, encoding);
            }
            catch (WebException ex)
            {
                LogInfo.Error("调用微信接口异常WebException,this._timeout" + this._timeout + ",url=" + url, ex);
                ReturnResult rt = new ReturnResult();
                rt.errcode = 41001;
                rt.errmsg = "调用微信接口异常WebException;" + ex.Message;
                return Tools.ToJsonString(rt);
            }
        }

 

### 回答1: 根据提供的错误信息,"errmsg: "config:fail,error: 系统错误,错误码:63002签名是对的灬5灬59484灬1",可以初步判断是微信配置出现了错误,导致无法获取坐标信息。 出现错误码63002表示系统错误,这可能是由于微信服务端出现了一些问题或故障。在这种情况下,我们可以尝试以下解决方法: 1. 检查网络连接:确保手机或设备正常连接至互联网,并且网络稳定。 2. 更新微信版本:尝试更新微信到最新版本,可能会修复一些已知的问题。 3. 重新登录微信:退出当前微信,并重新登录,有时会解决一些临时性的问题。 4. 清理缓存:进入手机的设置,找到应用管理,清理微信的缓存数据,然后重启微信。 5. 重新授权:如果你使用了开放平台或第三方SDK进行接入,确认你已正确配置并且具有相应的权限。 如果以上方法都没有解决问题,那很可能是微信服务端出现了问题,此时只能等待微信官方解决。你可以稍后再次尝试,或者联系微信客服寻求帮助,提供错误代码和详细描述,以便他们能够更好地帮助你解决问题。 ### 回答2: 根据提供的信息分析,"获取微信坐标errmsg: "config:fail,error: 系统错误,错误码:63002签名是对的灬5灬59484灬1" 是由于在获取微信坐标的过程中发生了系统错误,并返回了错误码63002。错误的具体信息为签名是对的灬5灬59484灬1。 错误码63002通常表示请求参数有误或缺失,可能是由于签名计算错误导致的系统错误。签名是对的灬5灬59484灬1这部分信息可能是一个签名信息,其中的"灬"可能表示一个分隔符。 为了解决此问题,可以按照以下步骤进行操作: 1. 首先,确认请求中的参数是否正确,包括应用的AppID、AppSecret、请求的URL、Nonce(随机数)、Timestamp(时间戳)等参数。确保这些参数的正确性。 2. 其次,检查签名算法是否正确。微信的签名算法是对请求参数进行加密计算得到的,需要使用正确的算法和密钥进行计算,确保签名的正确性。 3. 如果确认参数和签名算法都正确无误,那么可能是微信系统内部出现了异常。这种情况下,建议等待一段时间后重新尝试获取微信坐标,或者联系微信客服寻求帮助。 总之,针对获取微信坐标时出现的errmsg: "config:fail,error: 系统错误,错误码:63002签名是对的灬5灬59484灬1"这个问题,需要仔细检查请求参数和签名算法的正确性,并在无法解决的情况下联系微信客服获取技术支持。 ### 回答3: 根据你提供的信息,获取微信坐标时出现了一个错误错误信息是"config:fail,error: 系统错误,错误码:63002签名是对的灬5灬59484灬1"。 这个错误提示表明获取微信坐标时遇到了系统错误错误码63002。同时,你提供的签名是正确的,签名内容是"灬5灬59484灬1"。 要解决这个问题,首先可以尝试重新获取微信坐标,看看是否还会出现同样的错误。如果问题仍然存在,可以尝试以下步骤来解决: 1. 更新微信版本:确保你的微信版本是最新的,因为旧版本可能会出现一些错误或兼容性问题。 2. 检查网络连接:确保你的设备正常连接到网络,网络连接稳定。 3. 检查权限:确认你的应用程序已经获取了获取微信坐标的相关权限。如果没有权限,可以尝试重新授权。 如果以上步骤都不能解决问题,那么可能是一个系统错误导致的。在这种情况下,建议向微信的技术支持团队报告这个问题,提供错误码和其他相关信息,他们应该能够提供更具体的解决方案或帮助你解决这个问题。 总之,获取微信坐标时遇到系统错误需要确认网络连接、权限和微信版本,如果问题仍然存在,可以向微信技术支持报告该问题获取进一步帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值