zoukankan      html  css  js  c++  java
  • 上传文件报错System.Net.ProtocolViolationException: 必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetResponse。

    在上传文件的时候报错。

    错误:

    System.Net.ProtocolViolationException: 必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetResponse。

    原因:传过去的长度和你写在头文件的ContentLength 不一致。

    解决办法:

    保证ContentLength 和传输数据长度一致。

    实例:

    FileStream fileStream= new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
    byte[]  SendStreamData = StreamTobyte(signFile);//把文件流转成byte[]

    Post(fileStream);//这个函数是用来传输文件流的,这里会报错,因为现在流的初始位置为结束位置。

    我出现这个文件的原因是,文件流已经被我read过了,没有重新定位。

    加上定位代码,问题解决。

    修改如下:

    FileStream fileStream= new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
    byte[]  SendStreamData = StreamTobyte(signFile);//把文件流转成byte[]

    fileStream.Seek(0, SeekOrigin.Begin);//定位到初始位置。新增的代码

    Post(fileStream);//这个函数是用来传输文件流的,

  • 相关阅读:
    Springboot vue 前后分离 跨域 Activiti6 工作流 集成代码生成器 shiro权限
    mybatis3批量更新 批量插入
    Java GC的工作原理详解
    Hadoop的Map侧join
    cut 命令
    head 与 tail
    常用正则
    vim 设置
    Java泛型初探
    linux修改PS1,自定义命令提示符样式
  • 原文地址:https://www.cnblogs.com/wangjinming/p/4081777.html
Copyright © 2011-2022 走看看