zoukankan      html  css  js  c++  java
  • 使用Postman上传文件到Asp.net.Core总是为null的解决办法

    .net core 后台开发好文件上传接口后,用httpclient测试上传文件是可以正常接收,说明后台接口是没有问题的,但是在postman里使用form-data表单选择文件提交时后台总是获取不到IFormFile,

     即使在headers中加上Content-Type:multipart/form-data也不行,无赖只好利用fiddler抓包对比两边报文的差异,报文对比如下:

    HttpClient请求报文:

    POST http://127.0.0.1:49551/api/order/import HTTP/1.1
    Host: 127.0.0.1:49551
    Content-Type: multipart/form-data; boundary="afwsef"
    Content-Length: 10839
    
    --afwsef
    Content-Disposition: form-data; name=file; filename="=?utf-8?B?5qih5p2/Lnhsc3g=?="; filename*=utf-8''%E6%A8%A1%E6%9D%BF.xlsx
    
    PK     ! A7  n     [Content_Types].xml  (                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   T n 0 W ?D V      [$   x X$  ( }'fQU  %Ql [& <  &YB@ l. YO$`
       r = H E   V    5 
      ӵ L  b.j" "%5 
    **********省略

    postman请求报文:

    POST http://127.0.0.1:49551/api/order/import HTTP/1.1
    Content-Type: multipart/form-data
    Accept: */*
    Cache-Control: no-cache
    Host: 127.0.0.1:49551
    Accept-Encoding: gzip, deflate, br
    Connection: keep-alive
    Content-Length: 11041
    
    ----------------------------844787738171226849530776
    Content-Disposition: form-data; name="file"; filename="导入订单模板.xlsx"; filename*=UTF-8''%E5%AF%BC%E5%85%A5%E8%AE%A2%E5%8D%95%E6%A8%A1%E6%9D%BF.xlsx
    Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    
    PK     ! A7  n     [Content_Types].xml  (                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   T n 0 W ?D V      [$   x X$  ( }'fQU  %Ql [& <  &YB@ l. YO$`
    ******省略

    对比发现HttpClient在 Content-Type: multipart/form-data;后面加了  boundary="afwsef"  相当于随机分隔符,然后手动在postman Headers  Content-Type: multipart/form-data; 后面加上boundary="随机字符",果然可以正常发送文件了,还要注意一个细节就是文件表单的key一定要是file才可以,填其他字符或不填提交过去IFormFile也是为null的。

  • 相关阅读:
    实习感悟——从用户中来,到用户中去
    FineUI PK DWZ
    Java入门到精通——工具篇之Maven概述
    信息论的熵
    菜鸟学习Hibernate——一对多关系映射
    StyleCop学习笔记——默认的规则
    StyleCop学习笔记——自定义规则
    StyleCop学习笔记——初识StyleCop
    好博客收藏
    菜鸟学习Hibernate——简单的增、删、改、查操作
  • 原文地址:https://www.cnblogs.com/zhangmingjian/p/14296822.html
Copyright © 2011-2022 走看看