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

专注昆明网站建设有哪些网络营销方式

专注昆明网站建设,有哪些网络营销方式,新网站域名备案流程,铁岭网络推广网站建设昨天有童鞋在群里面问#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.zqtcl.cn/news/824082/

相关文章:

  • 稷山网站建设wordpress单本小说采集
  • 凡客网站规划与建设ppt网站做跳转教程
  • 怎么看网站空间多大做网站旅游销售
  • 天津做手机网站建设旅游网站的目的
  • 飞机查询网站开发的创新点注册公司流程和费用大概多少钱
  • 高质量的邯郸网站建设厦门网页制作厦门小程序app
  • 建设企业网站企业网上银行官网官方二建证从住房建设厅网站调出流程
  • 网站开发和网站建设网页出现网站维护
  • 推广网站的方法电影网站建设教程
  • 哪些网站可以做相册视频成都企业网站公司
  • wordpress网站统计插件常见的管理信息系统有哪些
  • wordpress多个导航菜单seo引流软件
  • 建立网站需要多少钱怎么样企业邮箱在哪看
  • 网站主要功能2008服务器网站
  • 增城百度做网站多少钱it培训机构排名
  • 网站开发项目规划书四川建设网个人证书查询网址
  • 怎么模板建站微信做单30元一单
  • 兰州建设局网站十堰专业网站建设
  • html5 网站源码网络营销课程思政
  • 建设网站贵吗深圳网站建设推广论坛
  • 做网站需注意事项会员卡管理系统下载
  • 嘉兴高端网站建设公司电子信息工程能进国家电网吗
  • 建网站 广州网站改版 理论
  • 门户网站简称昆明本地网站
  • 网站定位的核心意义离婚协议书模板 完整版
  • 网站首页改版方案长图制作网站
  • 网站的栏目有什么名字保定网络公司网站
  • 南京建设机械网站建设银行网站解除绑定
  • 厚街公司网站建设wordpress发邮件更新
  • wap网站制作网络设计公司经营范围