在上传文件的时候报错。

错误:

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);//这个函数是用来传输文件流的,

相关文章:

  • 2022-12-23
  • 2021-12-19
  • 2022-12-23
  • 2021-09-09
  • 2022-12-23
  • 2022-02-07
  • 2022-01-01
猜你喜欢
  • 2022-12-23
  • 2021-11-21
  • 2021-06-10
  • 2021-10-27
  • 2022-12-23
  • 2021-09-14
相关资源
相似解决方案