100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 微信企业号开发:上传文件错误44001 errmsg:empty media data

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

时间:2020-11-18 09:58:06

相关推荐

微信企业号开发:上传文件错误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);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。