当前位置: 首页 > news >正文

中土南方建设有限公司网站北京网站开发的趋势在哪里

中土南方建设有限公司网站,北京网站开发的趋势在哪里,上海网络推广公司排名,discuz和wordpress昨天有童鞋在群里面问#xff1a;怎么使用HttpClient发送文件#xff1f;01荒腔走板之前我写了一个《ABP小试牛刀之上传文件》#xff0c;主要体现的是服务端#xff0c;上传文件的动作是由前端小姐姐完成的#xff0c; 我还真没有用HttpClient编程方式发送过文件。不过Ht…     昨天有童鞋在群里面问怎么使用HttpClient发送文件01荒腔走板      之前我写了一个《ABP小试牛刀之上传文件》主要体现的是服务端上传文件的动作是由前端小姐姐完成的 我还真没有用HttpClient编程方式发送过文件。不过HttpClient的动作遵守Web协议盲猜httpclient按照前端multipart/form-data媒体类型发送文件应该也是可行的。花一个小时阅读了MDN Web协议写就了HttpClient发送文件的实例 看官自取。02头脑风暴      我们跟随常见的表单上传文件思路来实现HttpClinet上传文件。multipart/form-data是一种由多部分表单域值组成的媒体类型每部分由边界线一个由--开始的字符串划分。如下面的表单 有三个待提交input表单字段form actionhttp://localhost:8000/ methodpost enctypemultipart/form-datainput typetext namemyTextFieldinput typecheckbox namemyCheckBoxCheck/inputinput typefile namemyFilebuttonSend the file/button /form选中文件点击[Send the file]按钮提交表单会发出如下请求请观察由boundary划分的每个表单域和值 其中myFile是一个文件表单域 这个文件域需要单独指定Content-Type类型。03照葫芦画瓢       以上就是常规的Html表单上传文件的协议分析回到本文主题 这次会使用HttpClient编码形式发送只含有一个文件表单域的请求 (依旧利用的multipart/form-data媒体类型), 这也是下文的实现思路。下面是httpclient向localhost:5000/upload地址上传文件 服务器返回图片的base64编码字符串。3.1 客户端using System; using System.IO; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks;namespace ConsoleApp3 {class Program{static readonly HttpClient client  new HttpClient();static async Task Main(){try{byte[] bytes;using (var bodyStream  new FileStream(D:\001.png, FileMode.Open)){using var m  new MemoryStream();await bodyStream.CopyToAsync(m);bytes  m.ToArray();}// 1. 准备文件表单域和值var byteArrayContent  new ByteArrayContent(bytes);byteArrayContent.Headers.ContentType  MediaTypeHeaderValue.Parse(image/png);// 2.  向MultipartFormDataContent插入准备好的文件表单域值 注意MultipartFormDataContent是一个集合类型。var response  await client.PostAsync(http://localhost:5000/upload, new MultipartFormDataContent(Guid.NewGuid().ToString()){{ byteArrayContent, uploadedFile, \001ggg.png\}});response.EnsureSuccessStatusCode();var responseBody  await response.Content.ReadAsStringAsync();Console.WriteLine(responseBody);}catch (HttpRequestException e){Console.WriteLine(\nException Caught!);Console.WriteLine(Message :{0} , e.Message);}}} }•请注意我使用一个随机的GUID做为每个表单域的划分边界这里我向MultipartFormDataContent只插入了一个文件表单阈值这样就做到了HttpClient发送文件。•文件表单域值  { byteArrayContent, uploadedFile, \001ggg.png\} 中的参数2 字段名称很重要要与下面服务端的参数名匹配。3.2 服务端上传文件的代码在《ABP小试牛刀之上传文件》一文已经体现本次截取接收文件上传的核心代码[Consumes(multipart/form-data)] [Route(upload)] [ProducesResponseType(typeof(Guid), 200)] [HttpPost] public async Taskstring UploadAsync(IFormFile uploadedFile) {var formFileName  uploadedFile.FileName;if (!new[] { .png, .jpg, .bmp }.Any((item)  formFileName.EndsWith(item))){throw new NotImplementedException(您上传的文件格式必须为png、jpg、bmp中的一种);}byte[] bytes;using (var bodyStream  uploadedFile.OpenReadStream()){using (var m  new MemoryStream()){await bodyStream.CopyToAsync(m);bytes  m.ToArray();}}var base64  Convert.ToBase64String(bytes);return base64; }码甲哥从不打诳语启动客户端/服务端3.3 授人以渔成熟的技术必须有成熟的调试和监测手段成熟的技术必须有成熟的调试和监测手段成熟的技术必须有成熟的调试和监测手段每当做web开发出现阻塞的时候我就掏出web利器Fiddler跟着Fiddler去策马奔腾吧。# 全文总结1.对常规html表单上传文件的功能做协议级分析。2.根据分析结果HttpClient使用同样的姿势发送文件: 使用multipart/form-data(多部分表单媒体类型)发起上传请求。[1] 媒体类型MIME: https://developer.mozilla.org/zhCN/docs/Web/HTTP/Basics_of_HTTP/MIME_types我是有态度的马甲不追热点原创输出 # 八股文 # 硬核干货 # 职场心得 #欢迎关注。点分享点点赞点在看
http://www.pierceye.com/news/380980/

相关文章:

  • 网站互动性无锡模板建站
  • 中铁十六局工资明细沧州网站seo公司
  • 北京网站建设软件网页制作自我介绍源代码
  • 怎么注册公司的网站免费可以做旅游海报 的网站
  • 贵阳网站建设包首页微商建立网站
  • ppt制作软件全模板免费大连seo网站管理
  • 网站门户设计设计师的网站有哪些
  • 旅游公司网站建设百度一下官方下载安装
  • 网站上传大马后怎么做宁波seo推广公司电话
  • 长沙建网站培训机构织梦网站采集侠怎么做
  • 行政事业单位网站建设动漫设计与制作大学
  • 网站链接推广工具建立网站平台
  • 做网站需要学什么软件做网站智能工具
  • 成品网站代理上海的建设项目招投标在哪个网站
  • 阿里云的网站建设花钱么广州市建设职业培训学校网站
  • 网站建设和前端开发的区别哈尔滨网站制作方案
  • 改进网站的建议网易邮箱网页版
  • 南宁市做网站的公司新浪云能用wordpress
  • 网站建设品牌有哪些重庆seo排名收费
  • 发优惠券网站怎么做大连开发区做网站
  • 烟台免费网站建设宝应网站开发
  • 用网站做淘宝客的人多吗3liang 设计网站 源码
  • 实训小结网站建设国内外最新新闻
  • 最新网站排名优化方法云龙徐州网站开发
  • 扬州做网站多少钱免费拿货的代理商
  • html做校园网站服装设计图片
  • 做三网站推广一般给多少钱
  • 网站关键词的写法牛肉煲的做法
  • 网站权限怎么设置吉林电商网站建设报价
  • wordpress修改站点名wordpress 插件 调用