Windows Mobile 6.5中的请求stream.write()上的ProtocolViolation异常

时间:2011-05-26 13:59:18

标签: windows-mobile-6.5

在我的Windows移动应用程序中,我正在尝试编写带边界的视频文件。 如果我放置边界我接收协议异常,但如果我没有使用任何边界,它工作正常。

以下是我的代码

Stream requestStream = request.GetRequestStream();
        byte[] boundaryData = System.Text.Encoding.ASCII.GetBytes(twoHyphens+boundary+lineEnd);
        byte[] boundaryData1 = System.Text.Encoding.ASCII.GetBytes(twoHyphens + boundary + twoHyphens + lineEnd );

        String headertemp = "Content-Disposition: form-data; name=\"uploadedfile\";filename=\""+ GetCamera.videoFilePath+ "\""+ lineEnd;
        byte[] headerData = System.Text.Encoding.ASCII.GetBytes(headertemp);
        byte[] lineend = System.Text.Encoding.ASCII.GetBytes(lineEnd);

        requestStream.Write(boundaryData, 0, boundaryData.Length);
        requestStream.Write(headerData, 0, headerData.Length);
        requestStream.Write(lineend, 0, lineend.Length);
        using (Stream video = File.OpenRead(GetCamera.videoFilePath))
        {
            byte[] buffer = new byte[1024];

            while ((bytesRead = video.Read(buffer, 0, buffer.Length)) > 0)
            {
                requestStream.Write(buffer, 0, bytesRead);
            }
        }
        requestStream.Write(lineend, 0, lineend.Length);
        requestStream.Write(boundaryData1, 0, boundaryData.Length);
        requestStream.Close();
        requestStream.Dispose();

请帮我解决这个问题。

请转发您宝贵的建议。

1 个答案:

答案 0 :(得分:0)

我不知道原因,但是当我增加内容长度属性的值时,它工作正常。